SecureAgentServer
基于 MCP 的安全智能体系统
一个用于客服工单与客户账户的 MCP 服务器和客户端,整个链路均实现了安全构建:签名令牌认证、两道分别防范提示注入和工具投毒的独立护栏、一份文档化的威胁模型,以及针对唯一那个破坏性工具调用的人工批准门控。本系统为“Secure an MCP-Based Agent System”实验室而构建。
架构
flowchart TD
HOST["Host application"] --> CLIENT["client.py\n(fastmcp.Client + elicitation_handler)"]
CLIENT <-->|"Streamable HTTP\nAuthorization: Bearer <signed JWT>"| SERVER
subgraph Server["server.py — FastMCP('SecureAgentServer')"]
AUTH["JWTVerifier (HS256)\nissuer + audience + signature checked"]
G1["Guardrail 1: sanitize_untrusted_text()\napplied to ticket body/subject"]
G2["Guardrail 2: verify_tool_manifest()\nchecked at startup, refuses to start on mismatch"]
TOOLS["Tools: search_tickets, lookup_customer_account,\nclose_ticket (elicitation-gated)"]
AUTH --> TOOLS
TOOLS --> G1
end
G2 -.->|startup check| SERVER
TOOLS --> TICKETS[("data/tickets.json\n(untrusted customer text)")]
TOOLS --> CUSTOMERS[("data/customers.json\n('internal API')")]Related MCP server: permitd MCP Server
设置
pip install -r requirements.txt
# 1. Set the JWT signing secret (never commit the real value; see .env.example)
export MCP_JWT_SECRET="a-long-random-secret-at-least-32-characters"
# 2. Generate the pinned tool-integrity manifest (a deliberate, manual step —
# see docs/threat-model.md Risk #2)
python generate_manifest.py
# 3. Run the server
python server.py
# 4. In another terminal (same MCP_JWT_SECRET exported)
python client.py --auto-confirm # non-interactive demo
python client.py # interactive: real yes/no confirmation prompts复现安全控制
控制项 | 验证方式 |
签名 JWT 认证 |
|
护栏 1:提示注入净化 | 运行客户端,并查看 |
护栏 2:工具投毒检测 |
|
破坏性动作的人中回路 |
|
最小权限范围 |
|
威胁模型
完整论述,包括通过缓解措施和残余风险说明明确阐述、未回避的5项风险:docs/threat-model.md。
明确说明范围内之外的内容
mint_token.py只是真实 OAuth 2.1 身份提供者的替代品——生产环境需要真正的令牌签发/轮换/吊销,而不是本地铸造脚本。没有速率限制或网络层加固(TLS 终止、WAF)——这是应用层安全演示,不是完整的部署加固指南。
GuardRail 1 的正则版本部分明确是次要的、best-effort 缓解层——请参阅
docs/threat-model.md的 Risk #1 了解为何实际依赖的是分隔符包裹控制。
不提交任何机密
从环境变量中读取 MCP_JWT_SECRET(参见 .env.example),从不硬编码或提交。tool_manifest.json 是刻意提交的——它就像 lockfile 一样是一个组合列表,并不是机密。
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 gradedqualityCmaintenanceProvides a set of tools with a security verification layer that assesses risk and requires human approval for high-risk actions, reducing prompt injection and tool-poisoning attacks.
- AlicenseNot gradedqualityCmaintenanceGates agent tool execution with human approval, audit trails, and replay-resistant permits, enabling safe use of tools in agent loops.MIT
- FlicenseNot gradedqualityBmaintenanceProvides a secure MCP boundary for AI agents, intercepting and validating tool calls, redacting secrets, and requiring human approval for sensitive actions with a tamper-evident audit trail.
- FlicenseNot gradedqualityCmaintenanceEnables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.
Related MCP Connectors
Runtime permission, approval, and audit layer for AI agent tool execution.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Responsible-AI guardrails for agents: scoring with policy, injection & PII detection, DPDP.
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/bhargavlukka/secure-mcp-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server