production-mcp-server

production-mcp-server

MCP server that exposes immutable CAN signal and MISRA reference facts as read-only resources and provides a human-gated defect filing tool with tamper-evident audit logging.

Category
访问服务器

README

Production MCP Server Lab

This repository completes the Lab 3-B MCP server and the Lab 3-C Cloud Agent CI exercise. It exposes immutable CAN signal and MISRA reference facts as resources, and exposes ticket filing as a human-gated tool.

Setup

Use the existing Python 3.14 virtual environment. Supply secret values only through the process environment; never put them in source, .env files, or committed configuration.

export BOSCH_MCP_TOKEN="..."
export TRACKER_TOKEN="..."
export AUDIT_LOG_PATH="$PWD/audit.log.jsonl"
.venv/bin/python mcp_server.py --selftest
.venv/bin/python mcp_client_test.py
.venv/bin/python verify_audit.py

mcp_client_test.py prints the required PENDING_CONFIRMATION and CREATED terminal evidence. To demonstrate tampering, copy the log, edit or delete one JSONL record, then run verify_audit.py against the copy; it exits nonzero and identifies the first broken line.

Resource and Tool Split

signal://{message}/{signal} and misra://{rule_id} are resources because they are stable, addressable, read-only reference data. raise_defect is a tool because it can create a downstream ticket, which is an external side effect; it first returns PENDING_CONFIRMATION and creates nothing until a human-approved second call specifies confirm=true.

Security Reasoning

A stdio MCP server has no spec-defined per-call caller authentication: it inherits the trust boundary of the local process that spawned it. Streamable HTTP can layer authenticated transport and session credentials with authorization on each request, so production deployments should bind identity and scope to each tool call.

The confirmation gate is intentionally stateless. A hostile client can send confirm=true directly, so this exercise demonstrates human-in-the-loop workflow rather than cryptographic authorization. Production needs a durable approval record bound to authenticated actor, arguments, and expiration, or spec-native elicitation backed by authenticated transport.

The SHA-256 chain makes audit records tamper-evident, not tamper-proof. An attacker who can rewrite the entire local file can recompute a valid replacement chain. Immutable/WORM storage, signed checkpoints, and independent log shipping close that gap.

Lethal Trifecta Note

This design gates the external-communication leg: defect filing can alter a downstream system and initiate operational work, so every such write passes through raise_defect confirmation. The resources contain only vetted, non-secret DBC and rule reference data. The CI handles untrusted pull-request source as data through bounded static and conversion checks; it does not let PR content define arbitrary commands.

Lab 3-C

The initial decoder has two intentional defects recorded as xfail tests. tools/check_standard.py reports the missing fallback; tools/check_conversion.py starts this repository's MCP server over stdio and obtains DBC facts from signal:// before checking conversion output.

After pushing the initial commit, create the issue from docs/copilot-issue.md, assign it to Copilot coding agent, and request a Copilot review on its draft PR. .github/workflows/agent-compliance-check.yml posts or updates one compliance comment with BAPS, test, and conversion results.

Submission Checklist

  1. Repository URL: this GitHub repository, containing mcp_server.py, verify_audit.py, and no committed secret values.
  2. Human-gate transcript: paste mcp_client_test.py output.
  3. Audit transcript: paste intact and tampered verify_audit.py output.
  4. Trifecta note: paste the section above.
  5. Draft PR URL: paste the Copilot Agent PR showing the compliance comment and requested review.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选