# Agent Index

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/agent-idx/mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/agent-index

## Description
P2P Agent Index MCP — publish and search decentralized web indexes over libp2p.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "agent-index": {
    "command": "npx",
    "args": ["-y","agent-index"]
  }
}
```

## Documentation & 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.

