Discovery Agent MCP Server

Discovery Agent MCP Server

Enables MCP-compliant agents to perform data discovery, schema matching, and export via HTTP, with a mock mode for demonstration.

Category
Visit Server

README

Discovery Agent — MCP Server (Render deploy)

Self-contained copy of the Discovery Agent MCP server, ready to host on Render (or any host that runs a Python web service) and drive from any MCP-compliant agent over HTTP.

It exposes the full session lifecycle — connect → upload/pick source schema → choose target model → match → review → export/push — as MCP tools over the streamable-http transport.

What's in here

discovery-agent-mcp-server/
├── backend/app/          # the MCP server + all business logic (Python)
│   ├── mcp/              # FastMCP server, tools, HTTP entrypoint
│   ├── api.py            # route functions the tools call into
│   ├── matcher.py        # lexical fuzzy/Jaccard matcher
│   ├── parsers.py        # CSV / Excel / PDF / XML parsing
│   ├── idmc_client.py    # IDMC REST + mock catalogue
│   ├── ootb_schema.json  # mock Business Entities
│   └── ...
├── industry-library/     # curated source/target schemas
├── sample-data/          # sample dictionaries for demos
├── requirements.txt      # pinned dependencies (Python 3.13)
├── render.yaml           # Render blueprint (one-click infra)
├── Procfile              # start command
├── runtime.txt           # Python version pin
└── README.md

How it runs

The server starts with:

MCP_TRANSPORT=http MCP_HOST=0.0.0.0 MCP_PORT=$PORT PYTHONPATH=backend python -m app.mcp

It then serves MCP at https://<your-service>.onrender.com/mcp.

Env var Purpose Value on Render
MCP_TRANSPORT selects the transport http
MCP_HOST bind address 0.0.0.0
MCP_PORT bind port $PORT (Render injects it)
MCP_ALLOWED_ORIGINS required — DNS-rebinding / CORS allowlist your Render URL (see step 5)
IDMC_MODE mock for the demo catalogue, or unset for live mock

Important: the MCP SDK blocks any request whose Host header isn't in MCP_ALLOWED_ORIGINS. If you skip step 5 the service will boot but every client request returns a rebinding-protection error.


Deploy to Render (Blueprint — easiest)

1. Put this folder in its own Git repo

cd discovery-agent-mcp-server
git init
git add .
git commit -m "Discovery Agent MCP server"
git branch -M main
git remote add origin https://github.com/<you>/discovery-agent-mcp.git
git push -u origin main

2. Create the service on Render

  • Go to the Render dashboard → New + → Blueprint.
  • Connect the GitHub repo you just pushed. Render reads render.yaml and proposes a web service named discovery-agent-mcp.
  • Click Apply. The first build installs requirements.txt (takes a few minutes — pandas/pdfplumber compile).

3. Wait for "Live"

When the build finishes, Render shows a URL like https://discovery-agent-mcp.onrender.com.

4. Set the allowlist and redeploy

  • Open the service → Environment → the MCP_ALLOWED_ORIGINS var.
  • Set it to your service URL, e.g. https://discovery-agent-mcp.onrender.com (comma-separate more origins if a browser UI will connect too).
  • Save changes → Render redeploys automatically.

5. Verify

curl https://discovery-agent-mcp.onrender.com/mcp

A running MCP endpoint replies with a JSON-RPC / SSE error about a missing session (that's expected — it means the endpoint is alive). A 404 or connection error means the service isn't up yet.


Deploy to Render (manual, without the blueprint)

New + → Web Service → connect the repo, then set:

  • Runtime: Python 3
  • Build command: pip install -r requirements.txt
  • Start command: MCP_TRANSPORT=http MCP_HOST=0.0.0.0 MCP_PORT=$PORT PYTHONPATH=backend python -m app.mcp
  • Environment variables: MCP_ALLOWED_ORIGINS=https://<your-service>.onrender.com, IDMC_MODE=mock

Point an agent at it

Any MCP client that supports streamable-http can connect to https://<your-service>.onrender.com/mcp.

Example mcp.json (Claude Desktop / Cursor / AI Expert Suite style):

{
  "mcpServers": {
    "discovery-agent": {
      "url": "https://<your-service>.onrender.com/mcp",
      "transport": "streamable-http"
    }
  }
}

For a client that only speaks stdio, use a bridge such as mcp-remote:

{
  "mcpServers": {
    "discovery-agent": {
      "command": "npx",
      "args": ["mcp-remote", "https://<your-service>.onrender.com/mcp"]
    }
  }
}

Once connected, the agent sees all the discovery tools (idmc_use_mock, list_business_entities, create_session, run_match, get_candidates, apply_decisions, export_mapping, er_diagram, …) and the start_discovery prompt.


Notes & limits

  • Mock mode works fully out of the box — no IDMC credentials required.
  • Live IDMC over REST works if you set real credentials via the idmc_login tool, but the bundled b360-mdm-server.exe bridge is Windows-only and won't run on Render's Linux — live MDM-bridge features are unavailable there. Mock mode and REST-based flows are unaffected.
  • Sessions are in-memory and do not survive a restart. Render's free plan also spins the service down after inactivity; the first request after a spin cools starts it back up (cold start ~30–60 s).
  • Uploaded files must be reachable by the server. Over HTTP, prefer the industry-library source (source_mode="industry") or paste-JSON targets, since local file_paths refer to the server's filesystem, not the client's.

Run locally first (optional sanity check)

pip install -r requirements.txt
$env:MCP_TRANSPORT="http"; $env:MCP_HOST="127.0.0.1"; $env:MCP_PORT="8800"; $env:PYTHONPATH="backend"
python -m app.mcp
# → serving on http://127.0.0.1:8800/mcp

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured