Agent Index
P2P Agent Index MCP — publish and search decentralized web indexes over libp2p.
Open source Open in the app JSON README (API)
About
P2P Agent Index MCP — publish and search decentralized web indexes over libp2p.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- agent-idx
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.4.5
- Last push
- 2026-07-16T09:38:11Z
- Repository state
- ativo
- Language
- TypeScript
- Added
- 2026-08-29 03:02:23
- Updated
- 2026-08-29 03:02:23
- Origin id
io.github.agent-idx/mcp
README
# @agent-idx/client
MCP edge client for the P2P Agent Index Network. Connects to a routing peer, publishes local index records with **agent-chosen keywords**, and fetches records from peers over direct libp2p streams.
Source: [github.com/agent-idx/mcp](https://github.com/agent-idx/mcp)
Agents choose keywords and judge result relevance. The client provides network plumbing only.
## Install (npx)
**Routing and relay peer multiaddrs change over time.** Copy current values from the network **Active Nodes** directory (`/nodes` on the project website), not from docs or old configs.
Optional: set `AGENT_INDEX_DIRECTORY_URL` in MCP server `env` so agents can call `get_network_setup` and receive the directory link.
```json
{
"mcpServers": {
"agent-index": {
"command": "npx",
"args": [
"-y",
"@agent-idx/client",
"-b",
"<routing-peer-multiaddr-from-active-nodes>",
"-r",
"<relay-peer-multiaddr-from-active-nodes>"
],
"env": {
"AGENT_INDEX_DIRECTORY_URL": "https://<your-web-app>/nodes"
}
}
}
}
```
On the Active Nodes page:
- **Routing Peers** → `-b` (required)
- **Relay Peers** → `-r` (recommended behind NAT / home routers)
- **Active Index Nodes** → edge agents currently online (empty when nobody is connected; does **not** mean infrastructure is down)
After connecting, call MCP tool **`get_network_setup`** for a machine-readable summary of how the network works.
## CLI
```bash
npx -y @agent-idx/client \
-b <routing-peer-multiaddr-from-active-nodes> \
-r <relay-peer-multiaddr-from-active-nodes>
```
For NAT traversal (home routers, etc.), add `-r` / `--relay` with the public relay peer multiaddr from Active Nodes. The client uses circuit-relay + DCUtR to upgrade to a direct connection before sending index queries.
### Options
| Flag | Description |
|------|-------------|
| `-b, --bootstrap <multiaddr>` | **Required.** Routing peer to dial (from Active Nodes) |
| `-r, --relay <multiaddr>` | NAT relay peer for circuit-relay + DCUtR hole-punching (from Active Nodes) |
| `-d, --db <path>` | Local index store (default: `index_store.json`) |
| `-k, --keywords <path>` | Local keyword store (default: `keywords.json`) |
## MCP tools
| Tool | Description |
|------|-------------|
| `get_network_setup` | **Start here** — directory URL, configured peers, Active Nodes sections, blind-test flow |
| `publish_index` | Store a page summary and advertise agent-supplied `keywords` |
| `search_index` | Discover peers by `keywords`, fetch records for `query`, return merged JSON |
| `query_peer_index` | Query a known peer ID directly (bypasses DHT; uses relay hole-punch when needed) |
| `add_keywords` | Add keywords to this peer's advertised topic list |
| `remove_keywords` | Remove keywords from this peer's advertised topic list |
| `set_keywords` | Replace the peer's advertised keyword list |
| `find_peers_by_keyword` | DHT/registry discovery only — peer IDs and multiaddrs |
| `get_peer_status` | Local peer ID, configured routing/relay, keyword and record counts |
| `get_peer_profile` | Fetch ANP locators from another edge peer over libp2p |
## Develop from source
```bash
npm install
npm run build
node dist/index.js -b /ip4/127.0.0.1/tcp/4001/p2p/<BootstrapPeerId>
```
## Publish to npm (maintainers)
```bash
npm login
npm publish --access public
```
Requires membership in the `@agent-idx` npm organization.