MCP

一.定义和特点

1.MCP的概念

MCP模型上下文协议(Model Context Protocol)
请添加图片描述

定义:由Anthropic主导的开放协议,旨在标准化大型语言模型(LLM)与外部数据源、工具的交互方式,解决数据孤岛问题,提升AI模型的实用性与灵活性。其核心目标是通过统一协议实现“AI即插即用”。

2.什么是MCP?
请添加图片描述

(1)核心架构与组件
客户端-服务器架构:
MCP Host:运行LLM的应用程序(如Claude Desktop、IDE)。
MCP Client:在Host中运行,与Server建立1:1连接,负责请求处理。
MCP Server:轻量级程序,提供本地或远程资源访问能力(如数据库、API)。
(2)资源与工具:通过原语(Prompts/Resources/Tools)增强LLM功能,例如查询数据库、调用API、管理文件等。

3.技术特点

(1)标准化通信:基于JSON-RPC 2.0协议,支持能力协商(如声明支持的工具和资源)。
(2) 上下文保持:支持多轮任务的上下文传递,提升AI Agent的自主性。
(3)安全性:通过“Roots”限制Server权限,敏感数据可本地化处理,避免泄露。

4.优势对比

在这里插入图片描述

二.如何部署
请添加图片描述

<1>本地部署(Windows/macOS/Linux)

  1. 环境准备

(1)安装Node.js
确保Node.js版本≥18(推荐LTS版本),通过以下命令验证安装:

bash
node --version
npm --version

若未安装,从https://nodejs.org下载安装包。

(2)权限配置(Windows)

若需以管理员权限运行脚本,调整PowerShell执行策略:

powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  1. 安装预置MCP服务

(1)通过npm全局安装功能模块(如文件系统、天气查询等):

bash
npm install -g @modelcontextprotocol/server-filesystem       # 文件系统访问服务器
npm install -g @modelcontextprotocol/server-sqlite          # SQLite数据库支持

(2)启动服务器示例(如文件系统服务器):

bash
npx @modelcontextprotocol/server-filesystem /path/to/directory

3.配置MCP客户端(以Claude Desktop为例)

(1)打开Claude Deskto的配置文件径:%APPDATA%\Claude\claude_desktop_config.json)
(2)添加服务器配置(以SQLite为例):

json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "C:\\Users\\YOUR_USER\\test.db"]
    }
  }}

保存后重启Claude Desktop即可生效。

<2>云服务部署(阿里云函数计算)

  1. 快速部署模板
    使用阿里云CAP平台部署预置模板(如高德地图MCP Server):
bash
npx cap create --template start-mcp-amap-maps

填写API密钥后,自动生成云端服务并获取访问URL。

  1. 协议适配与扩展
    (1)WebSocket/SSE支持:通过函数计算适配存量MCP Server,支持单实例多并发。
    (2)自定义域名:绑定自定义域名提升服务稳定性,例如通过阿里云SLB配置HTTPS。

**

<3>自定义MCP服务器开发

**

  1. Python实现(使用uv工具)

(1)初始化项目:

bash
uv init weather_service
uv add httpx python-dotenv

(2)编写服务器代码(示例:天气查询):

python
from mcp.server import Server
server = Server("weather")
@server.toolasync def get_weather city: str) -> str:
    # 调用天气API并返回结果

(3)运行与测试:

bash
uv run server.py --port 8080
  1. Java实现(Spring AI集成)

(1)添加依赖(pom.xml):

xml
<dependency>
  <groupId>org.springframework.ai</groupId>
 <artifactId>spring-ai-mcp-server-webmvc-spring-boot-starter</artifactId></dependency>

(2)配置本地模型:
通过Ollama部署Qwen2.5模型:

bash
ollama pull qwen2.5:latest
  1. Node.js实现

(1)创建项目:

bash
mkdir pixabay-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk zod

(2)编写工具函数(示例:Pixabay图片搜索):

javascript
const { Server } = require('@modelcontextprotocol/sdk');const server = new Server('pixabay');

server.addTool('search-images', async (params) => {
  // 调用Pixabay API并返回结果
});

(3)调试与发布:
使用官方测试工具验证:

bash
npx @modelcontextprotocol/inspector node index.js

四、验证与调试

1.服务状态检查
在Claude Desktop或Cursor的MCP设置中查看服务器状态(绿色表示正常)。

2.功能测试
使用npx @modelcontextprotocol/inspector工具或浏览器访问http://localhost:5173/#tools测试工具列表。

3.日志排查
检查日志文件(如macOS的~/Library/Logs/Claude/mcp*.log)定位错误。

五、安全与权限控制

1.Roots机制:通过定义Roots限制服务器对文件系统或数据库的访问范围,例如仅允许访问特定目录。

2.企业级认证:未来计划支持远程服务器的JWT或OAuth2.0认证(当前仅限本地部署)。

六.如何应用

1.开发环境:在IDE中查询数据库、调用API、管理代码仓库(如Git)。
2.企业服务:集成内部系统(如CRM、ERP)实现自动化报表生成。
3.数据分析:通过本地数据库实时生成分析报告,避免数据上传风险。
请添加图片描述

总结
1.MCP部署灵活,支持本地、云端及多语言实现。
2.开发者可根据需求选择预置服务器(如文件系统、数据库访问)或自行开发定制化工具。
3.核心优势在于通过标准化协议实现AI与外部系统的无缝集成,同时保障安全性与可扩展性。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐