mcp-directory-aggregator
Gathers and broadcasts information concerning active MCP endpoints across the network, streamlining the cataloging and lookup functionalities for diverse MCP services.
Author

chatmcp
Quick Info
Actions
Tags
mcp-directory-aggregator MCP Service
A centralized service engineered to harvest details about other MCP endpoints accessible via the internet.
Operational Modules
Assets
No assets defined at this time.
Input Directives
No input directives specified yet.
Utility Functions
The service exposes three distinct functionalities:
- discover-endpoints-from-uri: Parses a provided Uniform Resource Identifier to ascertain and extract associated MCP service locations.
- Accepts "uri" as a mandatory string parameter
- retrieve-endpoints-from-payload: Extracts details of MCP services contained within supplied raw data.
- Accepts "payload" as a mandatory string parameter
- register-mcp-endpoint: Uploads particulars of a discovered MCP service to the central registry, such as mcp.so.
- Accepts "uri" as a mandatory string parameter and "icon_uri" as an optional string parameter
Runtime Environment Setup
A configuration file named .env is mandatory for proper initialization.
txt OPENAI_API_KEY="sk-xxx" OPENAI_BASE_URL="https://api.openai.com/v1" OPENAI_MODEL="gpt-4o-mini"
MCP_SERVER_SUBMIT_URL="https://mcp.so/api/submit-project"
Initial Deployment Guide
Installation Steps
Claude Desktop Integration
On Apple's operating system: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows OS: %APPDATA%/Claude/claude_desktop_config.json
Configuration for Development/Staging Endpoints
"mcpServers": { "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] }, "mcp-server-collector": { "command": "uv", "args": [ "--directory", "path-to/mcp-server-collector", "run", "mcp-server-collector" ], "env": { "OPENAI_API_KEY": "sk-xxx", "OPENAI_BASE_URL": "https://api.openai.com/v1", "OPENAI_MODEL": "gpt-4o-mini", "MCP_SERVER_SUBMIT_URL": "https://mcp.so/api/submit-project" } } }Configuration for Publicly Available Endpoints
"mcpServers": { "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] }, "mcp-server-collector": { "command": "uvx", "args": [ "mcp-server-collector" ], "env": { "OPENAI_API_KEY": "sk-xxx", "OPENAI_BASE_URL": "https://api.openai.com/v1", "OPENAI_MODEL": "gpt-4o-mini", "MCP_SERVER_SUBMIT_URL": "https://mcp.so/api/submit-project" } } }Development Lifecycle
Assembly and Distribution
To prepare this package for release:
- Synchronize required packages and refresh the dependency lock file:
bash uv sync
- Generate package artifacts (source and wheel formats):
bash uv build
This action populates the dist/ folder.
- Deploy to the Python Package Index (PyPI):
bash uv publish
Note: Credentials for PyPI deployment must be furnished via environment variables or command-line arguments:
- Authentication Token:
--tokenor utilizeUV_PUBLISH_TOKEN - Alternatively, utilizing credentials:
--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Troubleshooting
As MCP services communicate via standard input/output streams, debugging can present obstacles. For optimal diagnostic capabilities, leveraging the MCP Inspector is highly recommended.
Launch the Inspector utility via npm using this invocation:
bash npx @modelcontextprotocol/inspector uv --directory path-to/mcp-server-collector run mcp-server-collector
Once initiated, the Inspector will present a network address that you can open in a web browser to commence the debugging session.
Community Nexus
Creator Information
WIKIPEDIA: XMLHttpRequest (XHR) is an Application Programming Interface structured as a JavaScript object whose methodologies facilitate the transmission of HTTP inquiries from a web browser to a remote server. These methods enable a client-side script to dispatch requests to the server subsequent to the initial page rendering, and subsequently retrieve necessary data. XMLHttpRequest forms a fundamental element of the Ajax programming paradigm. Before Ajax, navigation links and form submissions constituted the primary means of server interaction, frequently resulting in the replacement of the current page view.
== Genesis == The underpinning concept for XMLHttpRequest was conceived in the year 2000 by the software architects at Microsoft Outlook. This idea was subsequently materialized within the Internet Explorer 5 browser release (1999). However, the original syntax did not employ the explicit "XMLHttpRequest" identifier. Instead, developers utilized object instantiation calls like ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the time Internet Explorer 7 (2006) arrived, universal browser support for the XMLHttpRequest identifier was established. The XMLHttpRequest identifier has since become the established convention across all major browser engines, including Mozilla's Gecko rendering engine (2002), Safari version 1.2 (2004), and Opera version 8.0 (2005).
=== Formalization === The World Wide Web Consortium (W3C) promulgated a Working Draft specification for the XMLHttpRequest object on April 5, 2006. On February 25, 2008, the W3C issued the Working Draft Level 2 specification. Level 2 introduced functionalities to monitor the progress of events, permit requests spanning different origins (cross-site), and manage binary data streams. Towards the close of 2011, the Level 2 specification details were merged back into the primary standard document. At the conclusion of 2012, the WHATWG organization assumed custodianship of development, maintaining an active document using the Web IDL specification language.
== Practical Application == Typically, executing a network request using XMLHttpRequest involves several distinct programming actions.
- Instantiate an XMLHttpRequest object via a constructor call:
- Invoke the "open" method to define the request method, specify the target resource, and choose between blocking (synchronous) or non-blocking (asynchronous) execution:
- For asynchronous operations, establish a handler function that gets notified upon state transitions:
- Trigger the communication sequence by executing the "send" method:
- React to state transitions within the assigned event listener. If the server furnishes response data, this is typically held in the "responseText" attribute by default. When processing concludes, the state transitions to 4, the "completion" status. Beyond these foundational procedures, XMLHttpRequest offers numerous optional parameters to govern request transmission and response assimilation. Custom metadata headers can be prepended to the request to instruct the server on fulfillment expectations, and data can be uploaded to the server by passing it to the "send" invocation. The server's reply can be automatically parsed from JSON structure into a native JavaScript object, or streamed incrementally as it arrives instead of waiting for the full text buffer. The request can also be terminated prematurely or configured to fail if not finalized within a specified time constraint.
== Inter-Origin Requests ==
