npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@agentopolis/mcp-a2a-bridge

v0.1.9

Published

MCP server that bridges Agent-to-Agent (A2A) agents to Model Context Protocol via stdio

Readme

MCP-A2A Bridge

A lightweight Model Context Protocol (MCP) server that proxies requests to one or more remote A2A agents.

It lets tools that natively speak MCP – such as Claude, Cursor AI, or any other MCP-aware client – interact with agents that expose the A2A protocol.
In short: MCP on the front-end, A2A on the back-end.


Why would I want this?

  • Use your existing AI client as an A2A Client Use Claude Desktop, Cursor, etc. as a client that can connect to and use A2A servers

MCP config in Claude / Cursor

To integrate with an MCP client that supports local servers (like Claude Desktop or Cursor), configure it to run the bridge using npx.

Example claude_desktop_config.json:

{
  "mcpServers": {
    "MCP-A2A Bridge": {
      "command": "npx",
      "args": [
        "-y", 
        "@agentopolis/mcp-a2a-bridge@latest", 
        "--a2a-server-config-dir=/Users/ryan/.config/mcp-a2a-bridge/servers" // Replace with your desired absolute path
      ]
    }
  }
}

Important:

  • Replace /Users/ryan/.config/mcp-a2a-bridge/servers with the actual absolute path you want to use on your system.

Restart or refresh your application after adding this configuration. The bridge should appear as a new tool provider.


Usage

Example: Send these prompts to your AI client:

  1. Add an A2A server using its url
add this a2a server: https://a2a-demos.agentopolis.ai/bella-restaurant
  1. Ask what skills the A2A server has:
what skills does Bella have?
  1. Use the skills
What kind of specials are they running?

and

Make a reservation for two for thursday at 8pm, under the name Ryan

Screenshots using Claude Desktop

  1. Adding an A2A server

Adding an A2A server

  1. Checking the MCP Tools

Checking the MCP Tools

  1. Asking about specials

Asking about specials

  1. Making a reservation

Making a reservation

  1. Listing servers

Listing servers

Configuration Directory

The bridge stores A2A server registrations as JSON files. The location is determined as follows:

  1. --a2a-server-config-dir=/your/absolute/path (CLI flag - Recommended)
  2. ./.mcp-a2a-servers (Relative to the current working directory of the bridge process – default if the CLI flag is not set. This may be unpredictable when run by other tools.)

A typical entry lives at <config_dir>/<serverId>.json.


Available MCP tools

| Tool name | Purpose | Input schema | |-----------|---------|-------------| | a2a_register_server | Fetches an A2A agent's card from <url>/.well-known/agent.json and saves it. | { url: string } | | a2a_reload_servers | Re-reads all JSON files in the config directory. | none | | a2a_list_servers | Lists registered servers. | none | | a2a_get_server_details | Full card for a given server. | { serverId: string } | | a2a_remove_server | Delete a registration. | { serverId: string } | | a2a_send_task | Generic escape hatch – call any A2A agent with an arbitrary message. | { serverId: string; taskId: string; message?: string | Message } | | <serverId>_<skillId> | Auto-generated. One tool per skill on every registered agent. Accepts { message: string }. | — |

A <serverId>_<skillId> tool name is slugified (my-agent + provide-restaurant-infomy-agent_provide-restaurant-info).


Released under the MIT license.