A unified agent index for discovery and interoperability across agent ecosystems.
NANDA Index enables seamless discovery and interoperability across heterogeneous agent indices. Register agents locally, search by skills and metadata, and bridge to external indices like AGNTCY ADS—all through a single API.
- Agent registration and management - Register agents with capabilities, metadata, and endpoints
- Capabilities-based search - Query agents by skills, tags, and attributes
- MongoDB persistence - Durable storage with flexible schema
- Client-agent allocation - Automatic assignment and tracking
- Extended API - Rich endpoints for search, stats, and management
- SSL support - Production-ready deployment with automatic certificate management
- Batch Operations (
agntcy-interop/) - Export/import OASF records, skill taxonomy mapping, batch sync. See documentation - Switchboard (
switchboard/) - Real-time cross-index discovery including AGNTCY ADS integration. See switchboard/README.md
┌─────────────────────────────────────────────────────────────┐
│ NANDA Index (Port 6900) │
│ ┌────────────────┐ ┌──────────────────────────────────┐ │
│ │ Core Index │ │ Switchboard │ │
│ │ - /register │ │ - /switchboard/lookup/<id> │ │
│ │ - /lookup │ │ - /switchboard/registries │ │
│ │ - /search │ │ - Adapters: AGNTCY, local │ │
│ │ - /allocate │ │ (enable via ENABLE_FEDERATION) │ │
│ └────────────────┘ └──────────────────────────────────┘ │
└────────────┬────────────────────────┬───────────────────────┘
│ │
MongoDB (persist) AGNTCY ADS (gRPC)
localhost:8888
nanda-index/
├── registry.py # Core index service
├── run_registry.py # Production launcher with SSL management
├── pyproject.toml # Dependency management (uv)
│
├── switchboard/ # Cross-registry discovery (see switchboard/README.md)
│ ├── adapters/ # Registry adapters (AGNTCY, local)
│ ├── switchboard_routes.py # Routing logic
│ └── tests/ # Integration tests
│
└── agntcy-interop/ # Batch interoperability tools
├── batch/ # Export/import scripts
├── adapters/ # Schema adapters
├── docs/ # Interop documentation
└── tests/ # Batch operation tests
- Python 3.6+
- MongoDB
- Clone the repository:
git clone https://github.com/projnanda/nanda-index.git
cd nanda-index- Install dependencies using
uv:
uv sync- Set up MongoDB and configure environment:
export MONGODB_URI="mongodb://localhost:27017/nanda"Basic usage:
python3 registry.pyProduction deployment with SSL (requires root):
python3 run_registry.py --public-url https://your-domain.com --port 6900POST /register- Register a new agentGET /lookup/<id>- Lookup agent by IDPOST /api/allocate- Allocate an agent to a clientGET /list- List all registered agentsGET /status/<agent_id>- Get agent statusGET /clients- List all clients
GET /search- Search agents by query, capabilities, tagsGET /agents/<agent_id>- Get detailed agent informationDELETE /agents/<agent_id>- Remove an agentPUT /agents/<agent_id>/status- Update agent statusGET /health- Health checkGET /stats- Index statisticsGET /mcp_servers- List MCP serversGET /skills/map?capability=<text>- Map capability to skill taxonomy
MONGODB_URI: MongoDB connection stringPORT: Index service port (default: 6900)CERT_DIR: Directory for SSL certificates (default: /root/certificates)
NANDA Index supports interoperability with external agent indices:
See agntcy-interop/ for OASF export/import tools and skill taxonomy mapping. Full documentation available in agntcy-interop/docs/.
See switchboard/README.md for complete documentation on AGNTCY ADS integration and live agent lookup across indices.
Enable with:
export ENABLE_FEDERATION=true
export AGNTCY_ADS_URL=localhost:8888
python3 registry.pyWhen enabled, adds endpoints:
GET /switchboard/lookup/<agent_id>- Cross-index agent lookupGET /switchboard/registries- List connected indices
- MongoDB should be properly secured with authentication
- Use HTTPS for production deployments
- Certificates are stored with appropriate permissions (600 for private key)
- The service requires root access for SSL certificate management
MIT License - see LICENSE file for details.