返回目录 / MCP 服务端
搭建只读MCP工具服务器供Agent查询
公开一个范围受限的查询工具,让MCP客户端读取应用数据而不能修改数据。
目标
通过MCP提供可发现、参数受限且无写入副作用的查询。
步骤
- 挑选单一只读业务查询,并从数据层授予最小读取权限。 [mcp-tools] [mcp-errors]
- 用
@mcp.tool()注册函数,以类型提示定义输入;通过Annotated[int, Field(ge=1, le=50)]限制分页参数。 [mcp-tools] [mcp-errors] - 若用工具注解声明
read_only_hint=True,记住它只是客户端提示;真正只读必须由数据库/服务权限强制。 [mcp-tools] [mcp-errors] - 把异常转换为受控MCP错误,不返回堆栈、连接串或秘密。 [mcp-tools] [mcp-errors]
- 用有效、越权、无效及超大分页请求测试服务器,确认数据层拒绝写入。 [mcp-tools] [mcp-errors]
验证方式
测试应证明工具只读取授权范围,且异常输出不包含内部实现细节。
故障处理
若测试能修改数据,在数据层强制只读权限,不要依赖工具描述约束。
权限边界
前置条件
- Python 3.10+、固定提交兼容的Model Context Protocol Python SDK
权限边界
- 只在本地或隔离测试环境操作;涉及外部数据或副作用时使用最小权限并先审批
限制
SDK行为可能随版本变化;固定来源仅说明其提交中的实现,不代表其他Agent或客户端完全兼容。生产环境需独立审阅数据保留、授权和副作用。
固定上游来源
- 仓库
- modelcontextprotocol/python-sdk
- 文件路径
- docs/servers/tools.md
- 固定提交
754254c08fe1c3eda18b69da3d336106fe8d72d6- 来源检查
- 2026-10-14 · 已按固定上游来源核对
仓库指标
以下数字属于上游仓库整体,不代表单个 Skill 或指南的点赞/热度。
- Stars
- 未取得
- Forks
- 未取得
- 观测时间
- 未取得
尚未取得指标快照。
许可证: MIT