MCP-Open-Discovery-with-AMQP
MCP Open Discovery Server with AMQP Transport
claude mcp add --transport stdio nagual69-mcp-open-discovery-with-amqp node server.js \ --env AMQP_EXCHANGE="Name of the AMQP exchange for MCP traffic" \ --env TRANSPORT_MODE="Transport mode, e.g., amqp" \ --env MCP_SSE_RETRY_MS="SSE reconnect retry interval in milliseconds (default 3000)" \ --env AMQP_QUEUE_PREFIX="Prefix for per-session AMQP queues" \ --env MCP_SESSION_TTL_MS="Duration of session TTL in milliseconds (default 600000)" \ --env MCP_ALLOWED_ORIGINS="Comma-separated list of allowed origins" \ --env MCP_VALIDATE_ORIGIN="Enable Origin header validation (true/false)"
How to use
MCP Open Discovery with AMQP provides a dynamic, multi-transport MCP discovery server with a pluggable marketplace of tools and a secure AMQP transport layer. It supports a hot-reloadable tool registry, allowing you to add, update, or remove plugins without downtime, and it exposes discovery, asset provenance, and automation capabilities through AMP-enabled channels. The AMQP transport enables scalable, message-based flows where tool calls, discovery results, and policy-enforced actions are exchanged over a secure message bus. Use this server to dynamically discover assets, orchestrate AI agents, and integrate with infrastructure monitoring and compliance workflows via the MQTT-like AMQP channels. Tools and marketplace extensions can be negotiated and invoked through structured routing keys and per-session queues, enabling isolation and auditability per client session.
How to install
Prerequisites:
- Node.js (LTS) installed
- Git installed
- Access to an AMQP broker (e.g., RabbitMQ) if using AMQP transport
-
Clone the repository: git clone https://github.com/nagual69/mcp-open-discovery.git cd mcp-open-discovery
-
Install dependencies: npm install
-
Configure environment (example):
- Create a .env file or export environment variables as needed: MCP_SESSION_TTL_MS=600000 MCP_SSE_RETRY_MS=3000 MCP_VALIDATE_ORIGIN=true MCP_ALLOWED_ORIGINS=http://localhost,http://127.0.0.1 AMQP_EXCHANGE=mcp AMQP_QUEUE_PREFIX=nagual69-mcp TRANSPORT_MODE=amqp
-
Run the server (via MCP config below): npm run start
-
Verify the server is running and accessible via the configured transport (AMQP). If you need to adjust the server entry point, modify server.js or the startup script as appropriate for your deployment.
Note: If you are deploying in a container or orchestrator, ensure the AMQP broker is reachable from the container and environment variables are propagated to the process.
Additional notes
Tips and common considerations:
- AMQP transport requires a reachable broker; ensure credentials and network policies allow broker connections.
- Use the per-session ephemeral queues with TTL for isolation and easy cleanup in multi-tenant environments.
- You can override queue/exchange names via environment variables (AMQP_EXCHANGE, AMQP_QUEUE_PREFIX) to align with your organization's naming conventions.
- The plugin marketplace supports policy-guided extensions; enable or disable external dependencies via dependenciesPolicy to enforce security and governance.
- For debugging, enable enhanced session lifecycle logging to track creation, activity, expiration, and closure events.
- If Origin validation is enabled, ensure CLIENT origins are whitelisted in MCP_ALLOWED_ORIGINS to avoid 403 errors.
- When upgrading MCP specifications or plugins, perform non-downtime testing in a staging environment to validate hot-reload behavior.
Related MCP Servers
any-chat-completions
MCP Server for using any LLM as a Tool
bitbucket
Bitbucket MCP - A Model Context Protocol (MCP) server for integrating with Bitbucket Cloud and Server APIs
time
⏰ Time MCP Server: Giving LLMs Time Awareness Capabilities
unity-editor
An MCP server and client for LLMs to interact with Unity Projects
website-publisher
AI Website builder and publisher MCP. Quickly publish and deploy your AI generated code as real website URL. Support html, css, js, python etc.
xgmem
Global Memory MCP server, that manage all projects data.