mcp-sentinel
Opens approval-gated pull requests against allowlist.json containing security audit verdicts and evidence for human review.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-sentinelAudit mcp-server-toolbox for tool poisoning and secret exfiltration before I approve it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-sentinel
mcp-sentinel is an agent that checks whether an MCP server is safe before your team trusts it. It installs the server in a sandbox, hands it fake secrets, calls its tools, and watches what it does. If the server tries to steal the secrets or hides instructions in its tool descriptions, mcp-sentinel catches it and opens a pull request so a person can review and decide.
Built at the WeMakeDevs Agent Harness Hackathon on TrueForge, Bright Data, and Qodo.
The problem
Teams add MCP servers the way they added npm packages years ago. You find one, paste a config line, and it starts running. It now has whatever credentials are in your environment, and its tool descriptions go straight into the model's context. That is a lot of trust for one line of config.
These attacks already happen:
Tool poisoning. The description says "adds two numbers" but also hides text telling the model to read your SSH key and pass it along. The model reads the whole thing. You see the short version.
Rug pulls. The server is clean when you review it. A later version quietly adds the theft. Nobody reviews it again.
Exfiltration. The server reads environment variables and sends them to an attacker.
Most security tools today only read the tool descriptions and guess. Reading the label tells you what the server claims to do. Running it tells you what it actually does. mcp-sentinel runs it.
Related MCP server: mcp-audit-server
How it works
Four steps, in order:
Discover. Look up the server on its registry: version, tools, maintainer, download counts.
Inspect. Install it in a sandbox. Set fake secret values (called canaries) in the environment, for example
GITHUB_TOKEN=canary-1a2b3c. Call its tools with safe inputs. Watch every outbound request.Judge. Roll the findings into one verdict, with the evidence attached.
Act. Open a pull request against
allowlist.json. A person approves or rejects it.
A canary value exists nowhere except the environment we handed the server. So if that value shows up in an outbound request, the server stole it. There is no guessing.
Verdicts: clean, changed_since_approval, suspicious, malicious, could_not_inspect.
Every verdict comes with evidence: the exact description text, the captured request, or the diff. A verdict with no evidence is treated as a bug.
Architecture
mcp-sentinel does not rebuild the hard parts. TrueForge already provides the agent loop, subagents, the sandbox, human approvals, and durable sessions. We use them.
TrueForge (agent harness runtime)
- runs the agent loop
- one subagent per server
- runs the Daytona sandbox
- pauses for human approval
- keeps the session alive
|
+---------------------+---------------------+
| | |
OpenAI model MCP connectors Daytona sandbox
(the brain, inside TrueForge: (where untrusted
reads findings, - github -> opens PRs servers actually
decides a verdict) - bright-data -> scrapes run)
- sentinel -> our tools
|
Qodo reviews every PR we openWhat each part does:
TrueForge (TrueFoundry). The runtime. It runs the agent, spins up one subagent per server, runs the sandbox, and pauses for a human before any pull request is opened. We plug into it, we do not replace it.
OpenAI model. The brain. It reads the findings from the tools and decides the verdict. Configured as the model provider inside TrueForge.
sentinel MCP server (this repo). Our own tools, exposed to the agent:
static_scan(find poison in tool descriptions),fingerprint(hash the tool surface),diff_capability(spot real changes since last approval), andanalyze_capture(check whether a canary left the sandbox). These are plain functions, so the harness does the orchestrating and stays in charge.github MCP connector. Opens the pull requests. Writes are approval gated.
bright-data MCP connector. Scrapes the registries in the Discover step.
Daytona. The sandbox. Every untrusted server is installed and run here, never on your machine.
Qodo. Reviews every pull request in this repo, including the ones the agent opens itself. If Qodo finds a real problem, we fix it before merging.
Technologies used
TrueForge (TrueFoundry) for the agent harness runtime
OpenAI for the model
Daytona for the sandbox
Bright Data for registry scraping
Qodo for AI code review on every pull request
GitHub MCP for opening pull requests
Model Context Protocol SDK v2 for talking to servers
mitmproxy for capturing outbound traffic in the sandbox
TypeScript, Node 22, and Vitest
How to use it
Test other MCP servers from inside TrueForge
You can add the sentinel server to TrueForge and point it at any other MCP server you have connected, to check that server's security.
Build it:
npm run build -w sentinel-mcpIn TrueForge, add a new MCP connector of type stdio with this command:
node sentinel-mcp/dist/index.jsNow the agent (or you) can call the sentinel tools on another server's tool list. Give
static_scanthe tools from any server you have connected and it tells you what is wrong with them, with evidence.
Run the full audit
Compose the agent from agent/agent.json, give it allowlist.json, and run it. It walks the four steps for each server and opens approval gated pull requests. Setup steps are in agent/README.md.
Prove the pipeline without TrueForge
The whole detection chain runs locally with one command:
npm run e2eIt spawns the demo server, runs the real tools against it, catches a canary leaving over the network, and ends at a verdict. Useful for a quick check that everything works.
Use the tools directly
The sentinel tools are plain functions. You can import them into your own code or script and run static_scan, fingerprint, diff_capability, and analyze_capture on any tool list you already have.
Future work
More registries in the Discover step (Glama, mcp.so).
Watch file reads in the sandbox, not just network, so we catch a server reading
~/.ssheven if it does not send it yet.Let the agent write a new detection rule when it catches something, and open that as its own reviewed pull request.
A simple screen showing what the agent is doing, what is waiting on you, and what it did.
Re-audit servers on a schedule, not only when the registry changes, so behavior that drifts without a version bump still gets caught.
Catch time delayed behavior, where a server stays quiet during the check and turns malicious later.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceMCP server for auditing AI agent permissions and access by scanning for the trifecta of credentials, injection, and reach without heavy infrastructure.
- AlicenseNot gradedqualityDmaintenanceThis MCP server enables security auditing for MCP configurations and AI agents, including prompt injection testing, data flow tracing, and security policy generation.106MIT
- AlicenseBqualityCmaintenanceEnables deterministic security testing of AI agents that use tools by serving synthetic MCP environments with poisoned data, fake secrets, and privileged actions. Records agent tool calls and evaluates security invariants (e.g., canary leaks, forbidden access, approval binding) without an LLM judge or real systems.8MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that provides a security gateway for AI agents, enforcing allow/confirm/deny policies on tool calls and requiring human approval for risky operations, with full audit logging.
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
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/kirandevihosur74/mcp-sentinel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server