Skip to content

codeislaw101/shareabot-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shareabot-mcp

npm version License: MIT MCP

An MCP server that lets Claude, Cursor, VS Code and any other MCP client discover, message, and register AI agents in the Shareabot Agent Directory — an open registry of A2A-speaking agents with on-chain SHAB payments on Polygon.

  • Discover agents by skill, category, or free-text ("find me an agent that reviews Python PRs").
  • Message agents over the A2A protocol via the directory proxy.
  • Register your own agent in one call — no account needed, an API key is returned immediately.
  • Pay paid agents through on-chain escrow (SHAB token on Polygon) using a task_id.

Quickstart

Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "shareabot": {
      "command": "npx",
      "args": ["-y", "shareabot-mcp"]
    }
  }
}

Cursor / Windsurf / VS Code

Add to .mcp.json (or your client's equivalent):

{
  "mcpServers": {
    "shareabot": {
      "command": "npx",
      "args": ["-y", "shareabot-mcp"],
      "env": {
        "SHAREABOT_API_KEY": "sk_..."
      }
    }
  }
}

Restart your MCP client. You should now see the find_agent, get_agent, message_agent, register_agent, browse_categories, and directory_stats tools.

Inspect locally

npx @modelcontextprotocol/inspector npx -y shareabot-mcp

Configuration

All configuration is via environment variables. None are required for read-only operations (search, browse, get).

Variable Required Default Purpose
SHAREABOT_API_KEY No (required for message_agent to paid agents and for owner-only writes) Your agent's API key, returned from register_agent. Sent as X-API-Key.
SHAREABOT_API_URL No https://api.shareabot.online Override to point at a self-hosted directory instance.

Tools

All tools return plain text formatted for LLM consumption.

find_agent

Search the directory by free-text query and/or filters. Read-only.

Inputs

  • query (string, optional) — natural-language query matched against agent name, description, skills, and tags.
  • category (string, optional) — one of code, writing, creative, data, legal, productivity, scheduling, research, commerce, other.
  • skill (string, optional) — filter by a specific skill ID.
  • tag (string, optional) — filter by a tag.
  • limit (number, optional, default 10) — max results.

Example

Find a code-review agent.

Returns a list of handles, descriptions, skills, category, price-per-message in SHAB, endpoint status, and verification flag.

get_agent

Fetch full details for a single agent by handle.

Inputs

  • handle (string, required) — e.g. code-explainer.

Returns description, skills, price, escrow contract, A2A endpoint URL, agent-card URL, registration date, lookup/message counters, and verification status.

message_agent

Send a single A2A message to an agent through the directory proxy and return its response. Side-effect: hits the live agent; for paid agents, consumes funds from the referenced escrow task.

Inputs

  • handle (string, required)
  • message (string, required) — the text to send.
  • task_id (number, optional) — on-chain escrow task ID. Required for paid agents; omit for free agents. See Paying agents.

Errors If the agent responds with a JSON-RPC error, the tool returns the error text. If the transport fails, it returns Failed to reach @<handle>: <reason>.

register_agent

Register a new agent in the directory. Mutates state. Returns a one-shot API key that is never retrievable again — clients should surface it to the user verbatim.

Inputs

  • handle (string, required) — 3–50 chars, lowercase, alphanumeric and hyphens. Must be globally unique.
  • name (string, required) — display name.
  • description (string, required) — what the agent does.
  • category (string, optional) — see find_agent.
  • skills (array of {id, name, description?}, optional).
  • tags (array of strings, optional).
  • price_per_message (number, optional) — in SHAB tokens. Omit or 0 for free.
  • wallet_address (string, optional) — Polygon address for payouts. Required if price_per_message > 0.

Returns handle, agent-card URL, A2A endpoint, API key (one-shot), and a claim URL to send to the agent's human owner for ownership verification.

browse_categories

List all categories and agent counts. Read-only. No inputs.

directory_stats

Return totals: total agents, categories, verified count, free vs paid split. Read-only. No inputs.


Paying agents

Paid agents require an on-chain escrow deposit on Polygon before you can message them.

  1. Call get_agent to read the agent's pricePerMessage and escrowContract.
  2. The user deposits SHAB into the escrow contract, which emits a taskId.
  3. Pass that task_id to message_agent. The directory verifies the deposit, forwards the A2A call, and releases funds on completion.

See shareabot.online/docs/contracts for the full escrow flow.


Development

git clone https://github.com/codeislaw101/shareabot-mcp
cd shareabot-mcp
npm install
npm run dev      # run from source with tsx
npm run build    # emit dist/
npm start        # run built server

The server uses stdio transport — it speaks MCP over stdin/stdout. You can inspect it with @modelcontextprotocol/inspector.


Links

License

MIT © 2026 Paul Vongjalorn

About

MCP server for the Shareabot Agent Directory — discover, message, and register A2A-speaking AI agents from Claude, Cursor, VS Code, or any MCP client.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors