源码与扩展
Native MCP 是一个开源项目,我们欢迎社区贡献。本篇文档将解析项目的源码结构,并指导您如何进行二次开发和功能扩展。
源码仓库
您可以通过以下地址访问我们的源码仓库:
项目结构解析

项目的核心目录结构说明如下:
src
: 项目的主源码目录。src/imsdk
: 对底层 Rust SDK 的封装,engine.py
是核心的引擎实现。src/lib
: 包含预编译的 Rust SDK 库文件、头文件以及由 CFFI 生成的 Python 接口文件rcim_client.py
。src/server
: 业务接口实现目录,server.py
是 MCP Tool 的主要定义文件。
二次开发与扩展指南
如果您希望基于此项目扩展更多功能(例如,调用更多 Rust SDK 提供的原生 IM 能力),可以遵循以下步骤:
步骤一:在 server.py
中暴露新接口
在 src/server/server.py
文件中,通过 @app.tool()
装饰器定义一个新的方法。该方法将被自动注册为可供大模型调用的 MCP Tool。

步骤二:在 engine.py
中实现底层调用
-
查找可用接口: 所有 Rust SDK 提供的底层接口都已通过 CFFI 转换为 Python 可调用的方法,您可以在
src/lib/rcim_client.py
文件中查找可用的接口、参数类型和返回值类型。 -
实现调用逻辑: 在
src/imsdk/engine.py
中,添加一个新的方法来调用您在rcim_client.py
中找到的接口。请务必确保传入的参数类型与接口定义一致。以
send_message
为例,下方代码展示了其在rcim_client.py
中的定义。您可以看到它需要的参数列表和类型。在engine.py
中调用时,需要构建并传入正确的参数。
python
try:
rcim_engine_send_message = _libraries['FIXME_STUB'].rcim_engine_send_message
rcim_engine_send_message.restype = None
rcim_engine_send_message.argtypes = [ctypes.POINTER(struct_RcimEngineSync), ctypes.POINTER(struct_RcimMessageBox), ctypes.POINTER(struct_RcimSendMessageOption), ctypes.POINTER(None), RcimCodeMessageCb, RcimMessageCb]
except AttributeError:
pass