logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

mcp-directory-aggregator logo

chatmcp

No License

Quick Info

GitHub GitHub Stars 19
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

chatmcpmcpserversmcp serversrequests chatmcpchatmcp mcp

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:

  1. Synchronize required packages and refresh the dependency lock file:

bash uv sync

  1. Generate package artifacts (source and wheel formats):

bash uv build

This action populates the dist/ folder.

  1. 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: --token or utilize UV_PUBLISH_TOKEN
  • Alternatively, utilizing credentials: --username/UV_PUBLISH_USERNAME and --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.

  1. Instantiate an XMLHttpRequest object via a constructor call:
  2. Invoke the "open" method to define the request method, specify the target resource, and choose between blocking (synchronous) or non-blocking (asynchronous) execution:
  3. For asynchronous operations, establish a handler function that gets notified upon state transitions:
  4. Trigger the communication sequence by executing the "send" method:
  5. 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 ==

See Also

`