Skip to content

5分钟学会 MCP:让 AI Agent 真正掌控你的开发环境

如果你的 AI 助手还停留在"聊天"阶段,是时候升级了。

MCP(Model Context Protocol)正在重新定义 AI 与开发工具的关系——它不是又一个 API,而是一套让 AI 直接操作系统资源的通用协议。

传统方式的尴尬

过去我们怎么让 AI 帮我们干活?

1
2
3
4
5
6
7
# 方式1: 把代码贴进对话
"帮我看看这个函数有什么bug" + 粘贴100行代码

# 方式2: 调用 REST API
curl -X POST https://api.example.com/analyze \
  -d '{"code": "..."}' \
  -H "Authorization: Bearer xxx"

问题很明显: - 上下文有限(塞不下一整个代码库) - 每次都要手动复制粘贴 - 工具之间各自为政,无法协同

MCP 来了

MCP 是 Anthropic 提出的开放协议,它的核心理念是:

让 AI 拥有"手"和"眼睛",直接操作文件系统、调用工具、访问资源。

三个核心概念

概念 作用
Resources AI 可以读取的数据(文件、API 响应、数据库)
Tools AI 可以调用的函数(搜索、执行命令、发送请求)
Prompts 预定义的提示模板

工作原理

1
2
3
4
┌─────────────┐      MCP       ┌─────────────┐
│   AI Model  │ ◄──────────►  │  Your App   │
│ (Claude等)  │   JSON-RPC    │ (VSCode等)  │
└─────────────┘               └─────────────┘

AI 发送 JSON-RPC 请求,应用执行后返回结果。整个过程 AI 知道自己能用什么工具、什么时候该用。

实战:5分钟集成 MCP

以 LoopForge 为例,看看 MCP 如何工作。

1. 定义 MCP Server

// mcp-servers.json
{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/project"]
    },
    "git": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-git"]
    },
    "search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search", "YOUR_API_KEY"]
    }
  }
}

2. 启动 LoopForge

1
2
3
loopforge agent run --workspace myproject \
  --mcp-config mcp-servers.json \
  --prompt "搜索最近关于 AI Agent 的论文,总结3个核心观点"

3. AI 自动操作

AI 收到任务后,会: 1. 调用 brave-search 搜索论文 2. 获取结果后,调用 filesystem 写入笔记 3. 整个过程你只需等待结果

LoopForge 的 MCP 能力

作为本地优先的 Agent OS,LoopForge 原生支持 MCP:

已集成的能力

工具 功能
file_read / file_write 读写任意文件
shell_exec 执行系统命令
web_fetch 获取网页内容
web_search 搜索互联网
browser_* 浏览器自动化

MCP 扩展

LoopForge 当前支持 MCP stdio transport,通过 --mcp-config(JSON)按 session 接入更多 MCP Server:

1
2
3
4
5
6
7
8
# 远端 MCP tools 会以 namespaced 形式暴露:mcp_<server>__<tool>
# MCP resources/prompts 通过 wrapper tools 暴露:
# - mcp_resources_list / mcp_resources_read
# - mcp_prompts_list / mcp_prompts_get
loopforge agent run \
  --workspace my-workspace \
  --mcp-config mcp-servers.json \
  --prompt "列出可用 MCP 工具并调用其中一个"

为什么这很重要

1. 上下文爆炸

传统 RAG 只解决"找文档"问题。MCP 让 AI 直接读取源码、运行测试、分析日志——真正的全栈理解

2. 工具即能力

不需要等模型本身学会什么新技能。只要有 MCP Server,AI 立刻获得新能力: - 接入数据库 → AI 变成数据分析专家 - 接入 GitHub → AI 变成代码审查专家 - 接入 Linear/Jira → AI 变成项目管理专家

3. 本地优先

LoopForge + MCP 可以在本地运行,不依赖云端——数据不出本地,能力不打折

快速开始

# 1. 安装 LoopForge
curl -L https://loopforge.dev/install | bash

# 2. 初始化项目
loopforge init my-workspace

# 3. 配置 MCP(可选)
cat > mcp-servers.json << 'EOF'
{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "./"]
    }
  }
}
EOF

# 4. 启动 Agent
loopforge agent run \
  --workspace my-workspace \
  --mcp-config mcp-servers.json \
  --prompt "阅读 src/main.rs,分析代码结构,写一份500字的架构说明"

进阶:自定义 MCP Server

如果官方 Server 不满足需求,可以自己写:

1. Python 实现

# my_mcp_server.py
from mcp.server import Server
from mcp.server.stdio import stdio_server
from pydantic import AnyUrl
import json

app = Server("my-custom-server")

@app.list_resources()
async def list_resources():
    return [
        Resource(
            uri=AnyUrl("myapp://config"),
            name="app_config",
            description="Application configuration"
        )
    ]

@app.read_resource()
async def read_resource(uri: AnyUrl):
    if uri == "myapp://config":
        with open("config.json") as f:
            return json.load(f)
    raise ValueError(f"Unknown resource: {uri}")

@app.list_tools()
async def list_tools():
    return [
        Tool(
            name="analyze_code",
            description="Analyze Python code for issues",
            inputSchema={
                "type": "object",
                "properties": {
                    "file_path": {"type": "string"}
                },
                "required": ["file_path"]
            }
        )
    ]

@app.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "analyze_code":
        # 实现代码分析逻辑
        return analyze_python(arguments["file_path"])
    raise ValueError(f"Unknown tool: {name}")

if __name__ == "__main__":
    stdio_server.run(app)

2. 注册到 LoopForge

1
2
3
4
5
6
7
8
{
  "servers": {
    "my-custom": {
      "command": "python",
      "args": ["/path/to/my_mcp_server.py"]
    }
  }
}

3. 更多官方 MCP Server

Server 功能
@modelcontextprotocol/server-filesystem 文件系统操作
@modelcontextprotocol/server-git Git 操作
@modelcontextprotocol/server-github GitHub API
@modelcontextprotocol/server-brave-search 网页搜索
@modelcontextprotocol/server-sqlite SQLite 数据库
@modelcontextprotocol/server-postgres PostgreSQL
@modelcontextprotocol/server-memory 知识图谱记忆

常见问题

Q: MCP 和 API 有什么区别?

API 是"你问我答",MCP 是"我知我能"。MCP 让 AI 知道自己有什么工具可用,不需要每次都通过 prompt 告知。

Q: 安全吗?

MCP 本身是协议,安全取决于 Server 实现。建议: - 本地开发用 filesystem server - 生产环境用细粒度权限控制 - 不推荐直接暴露 MCP Server 到公网

Q: 支持流式输出吗?

支持。MCP 基于 JSON-RPC 2.0,支持 server->client 通知,可以实现实时进度更新。

总结

MCP 不仅仅是一个协议——它是 AI 从"问答助手"进化到"执行引擎"的关键一步。

当 AI 能够: - 读取你的代码库 - 运行你的测试 - 搜索外部知识 - 操作你的工具

它就不再是玩具,而是真正的个人工程师


相关链接