从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
笔记哥 /
05-12 /
24点赞 /
0评论 /
358阅读
我将详细讲解如何一步步地将一个API接口封装成MCP服务器,并在实际项目中加以使用。
# MCP
## 初始化 MCP
要初始化 MCP 服务器,首先需要安装 uv 并设置 Python 项目和环境。命令如下:
>
>
> 创建新项目目录
>
>
> uv init kingbase\_service
>
> cd kingbase\_service
>
>
> 创建虚拟环境并激活
>
>
> uv venv
>
> .venv\Scripts\activate
>
>
> 安装依赖
>
>
> uv add "mcp[cli]" httpx
>
在所有操作执行完成之后,我们可以进入该目录并打开` main.py` 文件。文件中包含了一个简单的两个数相加的示例,我们无需关注它,直接删除该内容并重新编写即可。
## 社区 API
由于社区没有提供任何公开的API接口供我们使用,因此我们只能通过手动抓取接口的方式来获取数据。我们在这里不进行具体的演示,最终的实现代码如下:
```python
from mcp.server.fastmcp import FastMCP
import json
import requests
# 初始化 FastMCP 服务器
mcp = FastMCP("KingBase")
def get_search(query,type):
cookies = {
'_ga': 'GA1.3.1791910307.1718679034',
'__bid_n': '19029f909db92161118c02',
'Hm_lvt_3c01febe06ffa2353036661fdec1f873': '1718691104,1718792940,1718846376',
'sensorsdata2015jssdkcross': '%7B%22distinct_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E5%BC%95%E8%8D%90%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fcloud.tencent.com%2F%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkwMjlmOTBhYWQ1MjMtMDkwZWJmYmM5MzdkNWUtNGM2NTdiNTgtMjA3MzYwMC0xOTAyOWY5MGFhZTc3In0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%7D',
}
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN',
'Connection': 'keep-alive',
'Content-Type': 'application/json;charset=UTF-8',
# 'Cookie': '_ga=GA1.3.1791910307.1718679034; __bid_n=19029f909db92161118c02; Hm_lvt_3c01febe06ffa2353036661fdec1f873=1718691104,1718792940,1718846376; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E5%BC%95%E8%8D%90%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fcloud.tencent.com%2F%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkwMjlmOTBhYWQ1MjMtMDkwZWJmYmM5MzdkNWUtNGM2NTdiNTgtMjA3MzYwMC0xOTAyOWY5MGFhZTc3In0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%7D',
'Origin': 'https://bbs.kingbase.com.cn',
'Referer': 'https://bbs.kingbase.com.cn/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Microsoft Edge";v="126"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
}
tpe = f'kingbase_blog_{type}'
json_data = {
'keyWord': query,
'type': tpe,
'pageNum': 1,
'pageSize': 5,
'fullSearch': True,
}
response = requests.post(
'https://bbs.kingbase.com.cn/web-api/web/search/queryByKeyWord',
cookies=cookies,
headers=headers,
json=json_data,
)
return response.text
@mcp.tool()
def kingbase_serach(query: str, type: str) -> int:
"""
查询kingbase论坛和博客
query:查询内容
type:查询范围固定值:论坛:forum,博客:posts
"""
return get_search(query,type)
if __name__ == "__main__":
print("Starting MCP server...")
mcp.run(transport='stdio')
```
## 可视化测试
MCP依赖默认提供了一个可视化界面,方便用户进行简单的测试操作。通过该界面,用户可以快速验证本地环境是否能够正常运行,确保系统配置正确无误。测试命令如下:
>
>
> mcp dev main.py
>
执行完相关命令后,控制台会输出本地服务的IP地址和端口号。点击该链接,将能够在浏览器中查看到相应的效果,如下图所示:

看起来都是正常的。
# 插件配置
我们现在配置一下腾讯云的 CodeBuddy 编程助手插件,

并在里面添加如下配置信息:
```json
"mcp-kingbase-server": {
"command": "uv",
"args": [
"--directory",
"D:/project/python/mcp-server/kingbase_service",
"run",
"main.py"
]
}
```
配置成功后,就会成功解析我们写的工具,效果如图:

接着,我们就可以开始使用配置进行随时随地的查询了。
## 效果演示
我们直接在左侧的Craft标签中开始使用一下,这里简单问一下`Kingbase 数据库如何通过参数配置实现透明数据加密(TDE)`问题,看看能不能回答我,效果如下:

效果确实非常不错,这样一来,工作中遇到问题时,只需轻松查询,随时就能找到解决方案,极大提高了效率。
# 小结
将金仓社区搜索接口封装成MCP服务端并集成到 CodeBuddy 中,带来了显著的效率提升。通过这种方式,不再需要繁琐地打开浏览器进行搜索,直接在开发环境中就能快速查询问题,节省了大量时间。随时随地的查询功能大大简化了工作流程,让问题解决变得更加便捷。
* * *
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/3308
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利
- 相关联分享
- 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- C#实现MCP Client 与 LLM 连接,抓取网页内容功能!
- 如何实现本地大模型与MCP集成
- MCP协议Streamable HTTP
- 如何把ASP.NET Core WebApi打造成Mcp Server
- MCP应用的docker与docker - compose部署
- 开源的DeekWiki加入MCP,为您的Cursor提供开源项目分析,轻松让AI掌握开源项目使用文档!
- BotSharp 5.0 MCP:迈向更开放的AI Agent框架
- MCP官方C# SDK:实现.NET与MCP客户端和服务器快速交互
- Chat to MySQL 最佳实践:MCP Server 服务调用
- 容器化MCP Server的必要性与操作指南