Mern-Chat-App MCP Server
Mern-Chat-App MCP Server
This is a standalone Model Context Protocol server
generated for the Mern-Chat-App repository. It exposes two kinds of tools:
Code-reading tools (bundled repo source + Claude's architecture notes):
list_files(pattern?)— list bundled files, optionally filtered by glob (e.g.*.py)read_file(path)— read a file's contentssearch_code(query, regex?, max_results?)— search across the bundled sourceget_repo_overview()— the Claude-generated architecture overviewget_file_summary(path)— the Claude-generated summary for one file
API-calling tools (auto-generated, see server.py for the actual list — search for
@mcp.tool()) — one per endpoint Claude found this app's own frontend actually
calling. These call the real, already-deployed instance of this app's backend —
they don't run any code from this repo themselves. They do nothing until you set
API_BASE_URL (see below) to point at where you've deployed the actual application.
This server has no dependency on Claude, Anthropic, or any external API at runtime
— it only needs the mcp package (which pulls in httpx for the API-calling tools),
and works with any MCP-compatible client (Claude Desktop, Claude Code, or any other
agent that can launch a stdio MCP server).
Run it
pip install -r requirements.txt # or: pip install "mcp[cli]"
python server.pyUse it from Claude Desktop / Claude Code
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"mern-chat-app": {
"command": "python",
"args": ["/absolute/path/to/mern-chat-app-mcp-server/server.py"]
}
}
}Or with the Claude Code CLI:
claude mcp add mern-chat-app -- python /absolute/path/to/mern-chat-app-mcp-server/server.pyAny other MCP-compatible agent that can launch a stdio child process can use this the same way.
Try it standalone
mcp dev server.pyThis opens the MCP Inspector so you can call the tools manually before wiring it into an agent.
Connecting the API-calling tools to your real app
The generated API-calling tools are proxies — they need to know where your actual app is running and (if it requires login) how to authenticate. Two environment variables:
Variable | Meaning |
| Base URL of your already-deployed, live instance of this app's backend (e.g. |
|
|
AUTH_MODE=service (default) — one shared credential for every call:
AUTH_MODE=service
TARGET_API_TOKEN=<a token your app accepts, e.g. from its own login endpoint>Every tool call sends Authorization: Bearer <TARGET_API_TOKEN> to your app. Simple,
but every call acts as this one identity — right for single-operator/admin use, not
for an app with many separate end users. If the token expires, update the
TARGET_API_TOKEN env var (a fast restart, not a rebuild, on hosts like Render) — no
redeploy needed.
AUTH_MODE=passthrough — for apps with many end users, each with their own login:
AUTH_MODE=passthroughNo credential is stored here at all. Whatever Authorization header arrives on
this server's own incoming request is forwarded as-is to your app's API — each
caller acts as themselves. This means whatever calls this MCP server on a given
user's behalf must already hold that user's own valid token for your app and pass it
through — the same way your own app's frontend already does today. This server
never stores, inspects, or manages those tokens; it's a pure relay.
Deploy remotely (e.g. Render)
⚠️ This bundles your entire repository's source code, and (once configured above)
can call your real app's API. Deployed with no auth, read_file/search_code
would let anyone with the URL read your whole repo (including any secrets
accidentally committed to it), and the API-calling tools would be usable by anyone
with the URL too. Don't deploy without the token check below.
By default this server runs over stdio (a local subprocess, no network exposure). To run it as a remote HTTP server instead, set:
Variable | Value |
|
|
| a strong random secret — required when |
On Render: this project includes a render.yaml blueprint. In the Render
dashboard, choose New → Blueprint, point it at a git repo containing these files,
and Render will create the service, install requirements.txt, run python server.py, and auto-generate MCP_AUTH_TOKEN for you (visible in the service's
Environment tab afterward). Render assigns the port automatically — the server reads
it from the PORT env var Render sets (defaults to 10000 if unset, matching
Render's own convention).
Calling the deployed server: MCP clients that support remote servers connect to
https://<your-service>.onrender.com/mcp and must include the header:
Authorization: Bearer <the MCP_AUTH_TOKEN value>Requests missing or mismatching that header get HTTP 401 — the repository source is never served without it.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/priyankapsi/Mern-Chat-Application-MCP-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server