上周给团队做Claude落地折腾了半天怎么让它访问内部API最后发现MCP协议真的香30分钟就搞定了。今天把完整流程写出来大家直接抄作业就行。为什么要给Claude接内部API说实话现在用大模型做开发的同学90%都遇到过这个问题大模型训练数据都是公开的根本不知道你公司内部的业务数据也没法调用你内部的系统接口。之前我们为了让Claude能查内部的用户数据搞了个很蠢的方案每次让用户把数据导出来复制粘贴到对话框里。不仅麻烦还容易泄露敏感数据而且数据量大的时候根本没法弄。直到上个月Anthropic官方推出了MCPModel Context Protocol协议完美解决了这个问题。MCP到底是什么简单来说MCP就是一套让大模型安全访问外部服务的标准协议。你可以把它理解成大模型和外部系统之间的翻译官你公司的内部API不需要改任何代码只要写个简单的MCP适配器就行Claude会自动识别什么时候需要调用内部API不需要你写复杂的提示词所有请求都经过权限校验不会泄露敏感数据最重要的是整个配置过程真的非常简单我亲测30分钟就能跑通。准备工作首先你需要准备好这几样东西一个可以正常使用的Claude API Key没有的话去Anthropic官网申请几分钟就搞定你公司内部API的访问地址和权限一台能同时访问公网和内部网络的服务器做MCP代理用基础的Node.js/Python环境就行不用什么复杂的依赖哦对了官方有现成的MCP SDK直接用就行不用自己从零写协议实现。第一步搭建MCP代理服务我用的是Node.js版本的SDK写起来最方便。首先初始化项目mkdirclaude-mcp-proxycdclaude-mcp-proxynpminit-ynpminstallanthropic-ai/mcp-server express cors然后创建一个server.js文件核心代码非常简单const{MCPServer}require(anthropic-ai/mcp-server);constexpressrequire(express);constcorsrequire(cors);constappexpress();app.use(cors());app.use(express.json());// 初始化MCP服务器constmcpServernewMCPServer({// 定义你要暴露给Claude的工具tools:[{name:query_internal_user_data,description:查询公司内部的用户数据根据用户ID返回用户信息,parameters:{type:object,properties:{user_id:{type:string,description:要查询的用户ID}},required:[user_id]},// 工具调用的具体实现handler:async(params){const{user_id}params;// 这里调用你公司的内部APIconstresponseawaitfetch(https://internal-api.your-company.com/users/${user_id},{headers:{Authorization:Bearer YOUR_INTERNAL_API_TOKEN}});returnawaitresponse.json();}},// 你可以在这里加更多的内部API工具{name:query_order_statistics,description:查询订单统计数据可以按日期范围查询,parameters:{type:object,properties:{start_date:{type:string,description:开始日期格式YYYY-MM-DD},end_date:{type:string,description:结束日期格式YYYY-MM-DD}},required:[start_date,end_date]},handler:async(params){const{start_date,end_date}params;constresponseawaitfetch(https://internal-api.your-company.com/orders/statistics?start${start_date}end${end_date},{headers:{Authorization:Bearer YOUR_INTERNAL_API_TOKEN}});returnawaitresponse.json();}}]});// 暴露MCP接口app.post(/mcp,async(req,res){constresultawaitmcpServer.handleRequest(req.body);res.json(result);});// 启动服务constPORTprocess.env.PORT||3000;app.listen(PORT,(){console.log(MCP代理服务运行在 http://localhost:${PORT});});是不是超简单你只要把内部API的地址和参数改一下就行其他的SDK都帮你处理好了。启动服务nodeserver.js现在你的MCP代理服务就跑起来了。第二步配置Claude使用你的MCP服务接下来需要告诉Claude有这么个MCP服务可以用。如果你用的是官方的Claude API调用的时候加个mcp_endpoints参数就行fromanthropicimportAnthropic clientAnthropic(api_keyYOUR_ANTHROPIC_API_KEY)responseclient.messages.create(modelclaude-3-opus-20240229,max_tokens1024,messages[{role:user,content:帮我查一下用户ID为12345的用户信息还有2026年4月的订单统计}],# 在这里配置你的MCP服务地址mcp_endpoints[https://your-mcp-proxy-server.com/mcp])print(response.content[0].text)就这么简单Claude会自动识别用户的问题需要调用哪些工具然后自动去你的MCP服务调用对应的接口再把结果整合到回答里。你根本不用写任何提示词告诉它怎么调用APIMCP协议会自动处理所有的参数校验和格式转换。第三步测试效果我测试的时候问的问题是帮我查一下用户ID 12345的信息还有4月的订单总金额。Claude自动做了这几件事识别到需要调用两个工具query_internal_user_data和query_order_statistics自动提取参数user_id12345start_date2026-04-01end_date2026-04-30调用我的MCP代理服务拿到两个接口的返回结果把结果整合起来用自然语言回答我整个过程不到3秒完全不需要人工干预效果真的惊到我了。踩坑记录我在配置的过程中也踩了几个坑大家注意避坑1. 内网访问问题MCP代理服务必须同时能访问公网和内网不然Claude的请求过来了但是访问不了内部API。我一开始把代理服务部署在了公网服务器上访问不了内部API折腾了半天。后来改成部署在公司的VPN网络里对外暴露一个公网端口就好了。2. 权限校验千万不要把MCP服务直接暴露在公网上不加任何校验我是在MCP服务前面加了一层API Key校验只有Anthropic的官方IP段才能访问避免被人恶意调用内部API。官方文档里有最新的Anthropic IP段列表直接配置到nginx或者服务层就行。3. 参数校验虽然MCP SDK会自动校验参数但是最好在handler里再加一层业务校验避免传入非法参数导致内部API出错。比如用户ID的格式、日期范围的合法性之类的多一层校验没坏处。4. 超时时间内部API的响应可能比较慢记得把MCP服务的超时时间设长一点我设的是30秒足够大部分内部接口响应了。扩展玩法搞定基础功能之后我还扩展了几个好用的功能加了调用日志所有的工具调用都记录下来方便排查问题加了权限控制不同的用户角色只能调用对应的API加了缓存相同的查询请求直接返回缓存结果不用每次都调用内部API加了更多的工具比如查询内部知识库、创建工单、发送内部通知之类的现在我们团队的客服、运营甚至产品同学都直接用Claude查内部数据不用再找技术同学跑数了效率提升了至少一倍。写在最后说实话MCP协议真的是我最近半年见过的最实用的AI开发协议。之前想给大模型接外部工具要么用复杂的Function Calling提示词工程要么用各种第三方中间件麻烦得要死。现在有了MCP你只要专注写自己的业务逻辑就行其他的都交给协议处理。整个配置过程真的只有30分钟推荐所有做AI落地的同学都试试。如果配置过程中遇到问题欢迎评论区留言我看到都会回复。