MCP(Model Context Protocol)由 Anthropic 推出的一种全新开放标准,旨在为 AI 助手提供与数据源之间的安全连接能力
介绍
- MCP 可以构建服务器,以安全、标准化的方式向 LLM 应用程序公开数据和功能。可以把它想象成网络 API,但它是专门为 LLM 交互而设计的。MCP 服务器主要提供三种能力
Resources:通过资源公开数据(将这些资源视为类似 GET 的 endpoints;它们用于将信息加载到 LLM 的上下文中)- Python SDK 通过
@mcp.resource("config://app")实现
- Python SDK 通过
Tools:通过工具提供功能(有点像 POST 的 endpoints;它们用于执行代码或以其他方式调用接口执行动作)- Python SDK 通过
@mcp.tool()实现
- Python SDK 通过
Prompts:通过提示(可重复使用的 LLM 交互模板)定义交互模式- Python SDK 通过
@mcp.prompt()实现
- Python SDK 通过
- MCP 是一个开放协议,它标准化了 AI 应用与大语言模型(LLM)之间的连接方式,通过该协议与大语言模型进行高效的对接
- MCP 协议功能类似与 USB-C 接口,为 AI 应用提供了一个统一、灵活的接入方式
- MCP 是一种旨在提高大模型 Agent 开发效率的技术协议
- MCP 支持
- MCP Servers、clients、agent tools
- MCP SDK 开发工具:python、java、TS 等 SDK
什么是 Function Calling
Function Calling是一个允许大型语言模型(如 GPT)在生成文本的过程中调用外部函数或服务的功能,参考
--调用请求--> --请求-->
大模型 外部函数(function) 外部工具(如openweather API)
--调用结果--> <--响应--Function Calling 命名
MCP Client(MCP 客户端)大模型运行环境MCP Server(MCP 服务器)外部函数运行环境
--调用请求--> --请求-->
MCP Client MCP Server 外部工具(如openweather API)
--调用结果--> <--响应--MCP 开源实现
- https://github.com/modelcontextprotocol/servers
- 在 modelcontextprotocol/servers 仓库中,GitLab 的实现(即 src/gitlab)被删除的主要原因是为了减少维护负担,并将重点集中在核心参考服务器上。归档地址:https://github.com/modelcontextprotocol/servers-archived
- https://github.com/punkpeye/awesome-mcp-servers/blob/main/README-zh.md
- https://github.com/yzfly/Awesome-MCP-ZH
- https://github.com/punkpeye/awesome-mcp-servers/blob/main/README-zh.md
browser
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latestcontext7
- context7 获取代码的最新文档,能最大减少代码幻觉
# VS Code Local Server Connection
"mcp": {
"servers": {
"context7": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
}
}
}使用时,在提示词中添加 use context7 即可
- claude code 安装
claude mcp add context7 -- npx -y @upstash/context7-mcp --api-key YOUR_API_KEY
claude mcp add --header "CONTEXT7_API_KEY: YOUR_API_KEY" --transport http context7 https://mcp.context7.com/mcppython-sdk
pip install mcpdemo
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
- MCP Inspector
mcp dev server.pyMCP Inspector
MCP 检查器是一款用于测试和调试 MCP 服务器的交互式开发工具
- https://modelcontextprotocol.io/docs/tools/inspector
- https://github.com/modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector <command>
npx @modelcontextprotocol/inspector <command> <arg1> <arg2>mcp-remote
- 将仅支持本地(stdio)服务器的MCP客户端连接到支持身份验证的远程MCP服务器
- https://www.npmjs.com/package/mcp-remote
- https://github.com/geelen/mcp-remote
{
"mcpServers": {
"remote-example": {
"command": "npx",
"args": [
"mcp-remote",
"https://remote.mcp.server/sse",
"--header",
"Authorization: Bearer ${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "..."
}
},
}
}其他
- 类似的实现
- lastmile-ai/mcp-agent 使用模型上下文协议和简单的工作流程模式建立有效的代理
- zereight/gitlab-mcp
LOG_LEVEL=debugdebug 日志
- https://aws.amazon.com/cn/blogs/china/genai-technology-practice-of-yostar-operation-and-maintenance-team-claude-3-powered-code-reviewer/
最近更新
最新评论