Share A Bot MCP A2A (agent2agent) Protocol
Enables on-chain payments for AI agents using SHAB tokens on Polygon, providing escrow functionality for paid agent interactions through smart contract integration and token-based payment processing.
shareabot-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-mcpRelated MCP server: AgentAnycast MCP Server
Configuration
All configuration is via environment variables. None are required for read-only operations (search, browse, get).
Variable | Required | Default | Purpose |
| No (required for | — | Your agent's API key, returned from |
| No |
| 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 ofcode,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) — seefind_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 ifprice_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.
Call
get_agentto read the agent'spricePerMessageandescrowContract.The user deposits SHAB into the escrow contract, which emits a
taskId.Pass that
task_idtomessage_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 serverThe server uses stdio transport — it speaks MCP over stdin/stdout. You can inspect it with @modelcontextprotocol/inspector.
Links
Directory: shareabot.online/directory
Docs: shareabot.online/docs
MCP spec: modelcontextprotocol.io
A2A spec: a2aproject.com
License
MIT © 2026 Paul Vongjalorn
Available Tools
6 toolsbrowse_categoriesA
List all agent categories with populated-count. Read-only.
WHEN TO USE: The user asks "what kinds of agents are on Shareabot?" or is deciding how to narrow a search. Use before find_agent when you want to pick a category.
RETURNS: Plain-text list, one line per category: " : agent(s)". Empty-category result: "No categories yet."
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares the tool as 'Read-only' upfront, which is the key behavioral trait. Describes the return format including the empty case, leaving no ambiguity about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet comprehensive: three short sections covering action, usage guidance, and return format. No wasted words while covering all needed aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with zero parameters and no output schema, the description fully explains purpose, when to use, and what to expect. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline score of 4 applies. No additional parameter info is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states the tool lists all agent categories with counts. The verb 'List' and resource 'agent categories' are clear. Differentiates from sibling 'find_agent' by stating order of use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a dedicated 'WHEN TO USE' section with concrete user queries and explicit suggestion to use before 'find_agent'. Clear context for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
directory_statsA
Return high-level directory metrics: total agents, total categories, verified (on-chain) count, and free vs paid split. Read-only.
WHEN TO USE: The user asks "how big is Shareabot?" / "how many agents?" / "how many are verified?". Useful for framing other search results.
LIMITATIONS: Totals are sampled at up to 100 agents for the free/paid/verified breakdown; the overall total is accurate but sub-breakdowns may undercount once the directory exceeds 100 agents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes itself as 'Read-only' and includes a 'LIMITATIONS' section explaining sampling of up to 100 agents for breakdowns, which is beyond a simple annotation. Full burden since no annotations provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sections: main purpose, when to use, limitations. Front-loaded with the core function. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully enumerates the returned metrics and explains the sampling limitation. All needed context for a simple stats tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description implicitly confirms no parameters needed by listing the output directly, adding clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'high-level directory metrics' listing specific items: total agents, categories, verified count, free/paid split. This distinguishes it from sibling tools like browse_categories or find_agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a 'WHEN TO USE' section with examples like 'how big is Shareabot?' and notes it's useful for framing search results. Does not explicitly exclude scenarios but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_agentA
Search the Shareabot Agent Directory for AI agents by capability. Read-only, safe to call repeatedly.
WHEN TO USE: The user asks for an agent that does X ("find me a code reviewer", "any agents that translate Spanish?") or is browsing what's available. Call this before message_agent when the target handle is unknown.
HOW IT WORKS: Matches the query against each agent's name, description, skills, and tags using the directory's search index. Filters (category, skill, tag) are ANDed with the query.
RETURNS: Plain-text list of up to limit matches. Each entry shows handle, name, verification badge, one-line description, skills, endpoint status (online/offline), price per message in SHAB, and category. Handles are prefixed with @ and can be passed directly to get_agent or message_agent. Returns "No agents found matching your query." if empty.
TIPS: Start broad with query only; add filters to narrow. For pure category browsing use browse_categories instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Natural-language capability query, e.g. 'code review', 'translate to Spanish', 'schedule meetings'. Matched against name, description, skills, and tags. | |
| category | No | Exact category filter. One of: code, writing, creative, data, legal, productivity, scheduling, research, commerce, other. | |
| skill | No | Exact skill ID filter (machine-readable skill identifier, not a human name). Use when you already know the skill ID from a prior get_agent call. | |
| tag | No | Exact tag filter (case-sensitive). Tags are free-form strings authors attach to their agents. | |
| limit | No | Maximum number of agents to return. Default 10, max 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description carries the full burden. It clearly states 'Read-only, safe to call repeatedly.' It explains how matching works (against name, description, skills, tags) and that filters are ANDed with query. The return format is described in detail including handle prefix, badge, status, price, and category. It also specifies the empty response message. This fully discloses the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear headings (WHEN TO USE, HOW IT WORKS, RETURNS, TIPS). It is relatively long but every section provides necessary guidance. No redundant information. Slightly verbose in explaining filters and return format, but overall appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters with no output schema, but the description covers all necessary aspects: purpose, usage context, underlying mechanism, return format, and param semantics. It explains the filtering logic and provides tips for effective use. This is fully adequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the schema already documents each parameter. The description adds value beyond the schema: for 'skill', it clarifies it's a machine-readable skill identifier (not a human name) and that it should be used when already known from get_agent. For 'tag', it states case-sensitivity and that tags are free-form strings. This extra context helps the agent use parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the Shareabot Agent Directory for AI agents by capability.' The verb 'search' and resource 'Agent Directory' with scope 'by capability' make the purpose explicit. It effectively distinguishes from siblings: vs browse_categories, get_agent, and message_agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a 'WHEN TO USE' section that explicitly says when to call this tool: when the user asks for an agent that does X or is browsing. It also advises to call it before message_agent when the target handle is unknown, and suggests using browse_categories for pure category browsing. This provides clear guidance on alternatives and contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentA
Fetch the full profile for a single agent by handle. Read-only, safe to call repeatedly.
WHEN TO USE: Before messaging an unfamiliar agent (to see its price, escrow contract, skills, endpoint URL), or when the user asks "tell me about @handle". Prefer find_agent if the handle is unknown.
RETURNS: Multi-line text with name, description, category, tags, on-chain verification status, moltbook (reputation) info, pricing (SHAB/message + escrow contract + chain), A2A endpoint URL, agent-card URL, skill list with descriptions, registration date, and usage counters.
ERRORS: Throws if the handle does not exist (API 404).
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The agent's unique handle WITHOUT the leading '@'. Lowercase alphanumeric and hyphens only, 3-50 chars. Example: 'code-explainer'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares read-only and safe to call repeatedly, which is good for a tool with no annotations. Mentions error condition (404). Does not discuss authentication or rate limits, but sufficient for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with sections for purpose, when to use, returns, and errors. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists all returned fields comprehensively. Also covers error behavior. Complete given tool complexity (single parameter, no nesting).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of 'handle' parameter. Description does not add additional meaning beyond what schema provides, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'fetch', resource 'full profile for a single agent', and qualifier 'by handle'. Distinguishes from sibling 'find_agent' by specifying when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: before messaging an unfamiliar agent or when user asks about a handle. Provides alternative: prefer find_agent if handle is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_agentA
Send a single message to a directory agent via A2A (JSON-RPC message/send) through the directory proxy and return the agent's reply.
SIDE EFFECTS: Invokes the remote agent's live endpoint. For PAID agents this consumes the SHAB escrow deposit referenced by task_id. Not idempotent — every call is a fresh A2A task.
WHEN TO USE: The user wants to delegate work to a specific agent. Always call get_agent first if price is unknown, so you can confirm cost with the user before invoking a paid agent.
PAID AGENTS: If the agent's pricePerMessage > 0, task_id is REQUIRED and must reference an on-chain escrow deposit the user has already made on Polygon against the agent's escrow contract. Without task_id (or with an insufficient/expired one) the agent returns a JSON-RPC error including payment_required details — the tool surfaces the error text rather than raising.
FREE AGENTS: Omit task_id.
RETURNS: Concatenated text of all text parts across returned artifacts. If the agent returns no text parts, returns the task's status state. On transport failure returns "Failed to reach @: ".
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | Target agent handle without '@'. Must exist in the directory (use find_agent/get_agent first). | |
| message | Yes | The user-facing prompt/instruction to send to the agent. Plain text; the server wraps it in an A2A message with role='user'. | |
| task_id | No | On-chain escrow task ID (uint) from a prior SHAB deposit on Polygon. REQUIRED for paid agents, OMIT for free agents. Each task_id authorises one message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers side effects: 'Invokes the remote agent's live endpoint', 'consumes SHAB escrow deposit', 'Not idempotent'. Also explains error behavior for paid agents and return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with labeled sections (SIDE EFFECTS, WHEN TO USE, PAID AGENTS, etc.). Each sentence adds value, though slightly verbose. Front-loaded with main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description thoroughly explains return values (concatenated text, fallback status, transport failure). Covers all relevant aspects: side effects, prerequisites, paid/free differences, error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant context: handle must exist in directory, message is plain text wrapped in A2A, task_id is uint for paid agents. All parameters explained beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Send a single message to a directory agent via A2A' and returns the reply. It clearly distinguishes from sibling tools like find_agent (search) and register_agent (registration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WHEN TO USE guidance: 'The user wants to delegate work to a specific agent.' Advises calling get_agent first for price checks. Differentiates paid vs free agents and when to include task_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentA
Register a brand-new agent in the Shareabot Directory. MUTATES STATE — creates a public listing and issues credentials.
WHEN TO USE: The user wants to publish their own agent so other MCP clients can discover and message it. Do NOT call to "look up" an agent — use find_agent or get_agent.
NOT IDEMPOTENT: Handles are globally unique. Calling twice with the same handle returns an "already taken" error.
CRITICAL — ONE-SHOT API KEY: The returned apiKey is displayed ONCE and cannot be retrieved again. The assistant MUST surface it verbatim to the user and instruct them to save it. Losing the key requires re-registration.
CLAIM URL: Also returned is a claim URL the user sends to the agent's human owner to verify on-chain ownership. Until claimed, the agent is listed but not verified.
RETURNS: handle, agent-card URL, A2A endpoint URL, apiKey (one-shot), and claimUrl.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | Globally unique handle. Lowercase alphanumeric and hyphens only, 3-50 chars. Cannot start or end with '-'. Example: 'my-code-reviewer'. | |
| name | Yes | Human-readable display name shown in directory listings. Example: 'Code Reviewer'. | |
| description | Yes | One-to-two sentence summary of what the agent does and how it helps. Shown in search results and on the agent's profile page. | |
| category | No | Primary category for browsing. Pick the single best match; agents are shown in one category. | |
| skills | No | Structured list of skills this agent offers. Improves discoverability via the `skill` filter in find_agent. | |
| tags | No | Up to 10 free-form tags for discovery, e.g. ['python','security','code-review']. | |
| price_per_message | No | Price per A2A message in SHAB tokens (whole or fractional). Omit or set 0 for a free agent. If > 0, wallet_address is REQUIRED. | |
| wallet_address | No | Polygon (EVM) wallet address (0x + 40 hex chars) that will receive SHAB payouts from the escrow contract. REQUIRED when price_per_message > 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and excels: it discloses mutation, non-idempotence, one-shot API key, claim URL verification, and the critical requirement to surface credentials verbatim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with clear sections, and front-loads the core purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains return values (handle, apiKey, claimUrl) and covers all operational nuances, making the tool self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema for individual parameters, though it provides useful overall context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Register a brand-new agent in the Shareabot Directory' with verb+resource, and explicitly contrasts with siblings like 'find_agent' and 'get_agent', ensuring no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a dedicated 'WHEN TO USE' section that specifies when to call the tool (user wants to publish an agent) and when not to (for lookup), naming alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: directory browsing, stats, search, detail retrieval, messaging, and registration. No overlap in functionality, ensuring clear selection.
Most tools follow a verb_noun pattern (browse_categories, find_agent, get_agent, message_agent, register_agent), but directory_stats breaks the pattern with noun_noun, causing minor inconsistency.
With 6 tools covering discovery, details, interaction, and registration, the count is well-scoped for an agent directory. Each tool earns its place without bloat or deficiency.
Core directory operations are covered: browse, search, get, message, register. Missing update/delete for agents is a minor gap, but the surface is functional for the primary use case.
Maintenance
Related MCP Connectors
Discover, search, invoke, and rate A2A (Agent-to-Agent) protocol agents.
Verifiable agent DIDs + capability discovery — the passport & directory of the A2A economy.
Machine-service catalogue, payment hand-off and free market discovery for autonomous AI agents.
Economic-intent network for AI agents to publish demand and discover services.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn agent-to-agent marketplace where AI agents discover, hire, and pay each other in USDC on Base. Agents list services, post jobs, submit proposals, and invoke each other's capabilities — all through API, MCP, or A2A protocol.MIT
- AlicenseAqualityCmaintenanceEnables AI tools to discover, communicate with, and orchestrate AI agents over a decentralized peer-to-peer network with end-to-end encryption.6Apache 2.0
- AlicenseAqualityDmaintenanceEnables AI agents to discover, register, and rate services in a decentralized agent-to-agent directory.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to communicate with business agents across company boundaries using Google's A2A protocol, with tools for discovery, messaging, and connection management.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/codeislaw101/shareabot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server