微信扫码
添加专属顾问
我要投稿
深入探索MCP服务的实战应用与开发技巧。 核心内容: 1. 高德地图MCP服务的集成与配置 2. 实时聊天与天气查询功能的实现 3. 飞书MCP服务的创建与API调用指南
上次玩MCP已经过了一段时间了,尝试的都比较简单的MCP,这次想找几个实用的MCP服务器实战下,看看效果。
高德地图的MCP是基于SSE的,是一种基于HTTP的技术,客户端和服务器端建立持久连接,服务器端可以实时单向向客户端推送消息,无需客户端反复请求,有点类似websocket;
高德地图 MCP Server 是基于 SSE(Server-Sent Events)技术的地理服务接口集合,
允许开发者通过 MCP 协议调用地图服务,如路径规划、天气查询、地点搜索等。
它支持与如 Cursor、Claude 等大模型工具无缝集成。
我本次采用的工具是Cherry studio,使用起来比Cline更简单些;配置比较简单:
https://mcpmarket.cn/server/67ff4974764487b6b9e11c21
获取SSEURL;在聊天对话框内选择高德地图这个MCP服务器,然后进行聊天即可:这个MCP服务器还支持天气查询功能,不过刚才的规划中并没有考虑到天气,再问下:
很多公司使用飞书作为办公的IM,飞书已经开发了个MCP服务器,利用此MCP可以创建群聊,发送消息,获取消息列表等,如下。
https://open.feishu.cn/
添加权限
获取App ID和App Secret
全局安装lark-mcp工具
npm install -g @larksuiteoapi/lark-mcp
配置:
{
"mcpServers": {
"lark-mcp": {
"command": "npx",
"args": [
"-y",
"@larksuiteoapi/lark-mcp",
"mcp",
"-a",
"<your_app_id>",
"-s",
"<your_app_secret>"
]
}
}
}
如果需要用户身份访问API,配置如下:
{
"mcpServers": {
"lark-mcp": {
"command": "npx",
"args": [
"-y",
"@larksuiteoapi/lark-mcp",
"mcp",
"-a",
"<your_app_id>",
"-s",
"<your_app_secret>",
"-u",
"<your_user_token>"
]
}
}
}
启动其他启动参数可以参考:
https://mcpmarket.cn/server/68009589a5deaa7aaa917d69
说明下,为什么其他MCP服务器基本上配置就好了,这边要启动那,其他的MCP Server是在远程启动好的服务,而Lark-MCP的服务器需要本地启动,然后Lark-MCP只是将MCP的交互协议转成了飞书的各种API调用,飞书没有在平台启动MCP ,所以不行。而上面高德地图的MCP是MCP Server在远程启动好了的。
lark-mcp mcp -a cli_a8b8736ab9389013 -s App secret -m sse --host 0.0.0.0 -p 3000
在Cherry studio 上配置就比较简单了:
做个简单的测试,通过这个MCP创建一个名字叫MCP测试的群聊,然后将我飞书账号添加进去,并发送给消息标识成功;
第一次尝试失败,仍然缺失部分权限,如图:
在更正的过程中发现几个比较大的问题:
最终测试成功
在飞书里面的信息:
总结使用DeepSeek+Lark-Mcp 虽然最终实现了自己要求的功能,但是感觉总体使用起来还是磕磕绊绊的,主要有两个原因:
意外发现Cherry Stdio竟然可以直接显示DeepSeek-R1的给出的调用流程图了:
MCP协议准许我们以安全、标准化的方式向LLM公开数据和功能,可以简单看成一套标准接口,这个接口专门用于对接LLM的。目前主要用python或TypeScript,也有用java开发的比较少。本次我准备用python借助FastMCP库开发个简单的例子。
为什么需要FastMCP,理由如下:
MCP 协议功能强大,但实现它需要大量的样板代码——服务器设置、协议处理程序、内容类型、错误管理。FastMCP 处理所有复杂的协议细节和服务器管理,因此您可以专注于构建优秀的工具。 它设计为高级且 Python 风格的;在大多数情况下,您只需装饰一个函数即可。 虽然 FastMCP 1.0 的核心服务器概念奠定了基础并贡献给了官方 MCP SDK,但FastMCP 2.0(本项目)是积极开发的后继者,增加了重大增强和全新功能,如强大的客户端库、服务器代理、组合模式、OpenAPI/FastAPI 集成等等。
FastMCP 的目标是: ?快速:高级接口意味着更少的代码和更快的开发速度 ?简单:使用最少的样板构建 MCP 服务器 ? Pythonic:对 Python 开发人员来说感觉很自然 ?完整: FastMCP 旨在为服务器和客户端提供核心 MCP 规范的完整实现
mac@MacdeMBP code % python3 -m venv mcpenv
mac@MacdeMBP code % ls
mcpenv
mac@MacdeMBP code % source mcpenv/bin/activate
(mcpenv) mac@MacdeMBP code % pip install fastmcp
写个非常简单的mcp服务器:
#!/bin/python
from fastmcp import FastMCP
from fastmcp.exceptions import ToolError
mcp = FastMCP("Demo ?")
@mcp.tool()
def divide(a: float, b: float) -> float:
"""Divide a by b."""
if b == 0:
# Error messages from ToolError are always sent to clients,
# regardless of mask_error_details setting
raise ToolError("Division by zero is not allowed.")
# If mask_error_details=True, this message would be masked
if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
raise TypeError("Both arguments must be numbers.")
return a / b
@mcp.tool()
def hello(name: str) -> str:
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run()
然后简单运行下,看是否正常执行:
(mcpenv) mac@MacdeMBP mcpenv % python src/add-mcp.py
[05/25/25 18:43:57] INFO Starting MCP server 'Demo ?' with transport 'stdio'
正常运行,采用的是stdio方式连接的。
配置cherry stdio 将我们写的mcp server配置上去,如下图:
简单的测试下运行结果,除以写成了处于,AI仍然能够得到正确的结果:
对于stdio方式不是太方便,还有两种接口模式: 可流式传输的 HTTP:推荐用于 Web 部署:
mcp.run(transport="streamable-http", host="127.0.0.1", port=8000, path="/mcp")
SSE:为了与现有的 SSE 客户端兼容。
mcp.run(transport="sse", host="127.0.0.1", port=8000)
我们将接口改成SSE测试下,重新配置cherry stdio:
重新测试:
从高德地图到飞书,成熟的MCP服务正在重塑我们的开发方式。它们让应用开发变得前所未有的简单——无需从零搭建服务器架构,利用现成的MCP服务就能快速打造产品原型,用最低成本验证市场价值。
但真正的技术自由来自于自主可控。借助Python和TypeScript强大的MCP开发框架,开发者可以轻松构建专属MCP服务。这些框架封装了复杂的底层交互,让我们能够专注于核心业务逻辑的实现。
当企业级MCP服务遇见大语言模型,一场智能化变革正在上演:
为企业知识库注入智能活力,有效减少模型幻觉
打通各业务系统壁垒,构建真正的智能工作流
推动业务流程自动化迈向新高度
当然,这个新兴技术组合还存在优化空间:token消耗、响应速度、问题解决效率等方面仍有提升余地。但正如所有颠覆性技术一样,MCP+LLM的潜力远大于当前的局限。它正在以惊人的速度进化,而今天的选择,将决定明天的高度。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-28
大模型微调知识与实践分享
2025-05-28
OpenRouter 的 3 个实用快捷方式:省钱、提速与联网搜索
2025-05-26
DeepSeek V3 0526更新?实测代码能力已经提升,附实测案例。
2025-05-26
MCP Server的五种主流架构与Nacos的选择
2025-05-26
聊聊Cherry Studio如何接入vLLM部署的本地大模型
2025-05-25
一文搞懂大模型的预训练(Pre-training)
2025-05-24
颠覆认知!大模型自检自改新范式,彻底告别人工标注
2025-05-23
Reasoning模型蒸馏实践:用大模型提升小模型能力
2025-02-04
2025-02-04
2024-09-18
2024-07-11
2024-07-09
2024-07-11
2024-07-26
2025-02-05
2025-01-27
2025-02-01