Provides access to project-specific Markdown documentation for the Cangjie/ArkTS development project, including global documentation, module-specific documents, and FFI summaries through MCP resources.
Implements an MCP server using Python and FastMCP framework to deliver Cangjie project context, development templates, and documentation resources to IDEs.
CJ-MCP — Cangjie Project MCP Server
一个最小可用、可扩展的 Model Context Protocol (MCP) 服务器,用于在 IDE(如 Cursor)里为模型提供:
项目专有上下文(模块化的设计文档与规范)
Cangjie/ArkTS 开发模板(工具与提示模板)
它非常适合与 Context7(或任何“Cangjie 语法/标准库参考”的 MCP)同时启用:
Context7 负责语言/语法/标准库
CJ-MCP 负责你项目的专有知识与流程
目录结构详解
快速开始
环境准备(conda 或 python venv 都行)
注意:
将
/home/maxime/ws/my_mcp_server/server.py替换为你的实际路径如果使用虚拟环境,
command应指向虚拟环境中的 Python,例如:"/path/to/.venv/bin/python"重启 Cursor 使配置生效
功能说明
资源(Resources)
CJ-MCP 提供以下资源,模型可以通过 MCP 协议访问:
全局资源
cj://syntax- 仓颉语法/规范汇总自动聚合
resources/global/下所有.md文件包含 Cangjie-C FFI 使用总结等全局文档
cj://global- 所有全局文档包含语法、风格指南、公共设计等
支持子目录结构(如
libs/std/下的标准库文档)
模块资源
proj://modules/{module}- 指定模块的全部文档module参数示例:"incremental engine","ui","serialization_deserialization"自动扫描模块目录下的所有
.md文件并聚合支持中文模块名(如
"incremental engine")
使用示例:
工具(Tools)
summarize_module
对指定模块的文档进行粗粒度摘要,按文件顺序截取前若干字符。
参数:
module(str) - 模块名称max_chars(int, 默认: 12000) - 最大字符数
返回:以 ==== FILE: 分隔的文档摘要
提示模板(Prompts)
cj_module_dev
针对某个模块的开发任务提示模板。
参数:
module(str) - 模块名称task(str) - 具体任务描述
使用场景:当需要开发或修改某个模块的功能时,使用此 prompt 可以让模型:
自动获取相关语法文档(从 Context7)
自动获取项目全局约定(从
cj://global)自动获取模块专有文档(从
proj://modules/{module})生成符合项目规范的代码
示例:
cj_module_summary
总结模块设计的提示模板。
参数:
module(str) - 模块名称
返回内容:
模块目标与边界
关键类型/类/组件
状态与事件流转
与其他模块的依赖关系
已知坑点与注意事项
使用示例
示例 1:使用 cj_module_dev prompt
在 Cursor 中,你可以直接调用 prompt:
模型会自动:
读取
cj://global获取全局规范读取
proj://modules/incremental engine获取增量引擎文档根据任务生成符合规范的代码或文档
示例 2:直接访问资源
模型可以直接请求资源:
示例 3:使用工具生成组件
开发指南
添加新模块文档
在
resources/modules/下创建模块目录(支持中文名称)将模块相关的
.md文档放入该目录文档会自动被
proj://modules/{module}资源聚合
示例:
添加全局文档
将文档放入
resources/global/目录支持子目录结构(如
libs/std/)所有
.md文件会自动被cj://syntax和cj://global资源聚合
扩展工具
在 server.py 中添加新的 @mcp.tool() 装饰器函数:
扩展提示模板
在 server.py 中添加新的 @mcp.prompt() 装饰器函数:
依赖说明
Python 依赖
主要依赖:
mcp- Model Context Protocol 服务器框架(FastMCP)
安装:
或创建 requirements.txt:
然后安装:
Python 版本
建议使用 Python 3.11 或更高版本。
常见问题
Q: 如何验证 MCP 服务器是否正常工作?
A: 在 Cursor 中,打开 MCP 面板(通常通过命令面板),查看 cj-mcp 服务器状态。如果显示已连接,说明配置成功。
Q: 模块名称支持中文吗?
A: 支持。模块名称可以是中文,例如 "incremental engine"。在访问资源时使用:proj://modules/incremental engine
Q: 如何与 Context7 配合使用?
A: CJ-MCP 专注于项目专有知识,Context7 专注于语言语法和标准库。两者可以同时启用:
Context7 提供:语法规则、标准库 API、语言特性
CJ-MCP 提供:项目架构、模块设计、团队规范
Q: 资源文件支持哪些格式?
A: 目前主要支持 Markdown (.md) 文件。其他格式的文件会被忽略。
Q: 如何调试 MCP 服务器?
A: 可以直接运行 python server.py,服务器会通过 stdio 与客户端通信。如果出现错误,会在终端显示。
Q: 虚拟环境中的 Python 路径如何配置?
A: 在 .cursor/mcp.json 中,command 字段应指向虚拟环境的 Python 可执行文件:
贡献
欢迎提交 Issue 和 Pull Request!
许可证
[根据项目实际情况填写]
更新日志
v1.0.0
初始版本
支持全局资源和模块资源
提供组件生成工具
提供模块开发提示模板# CJ-MCP — Cangjie Project MCP Server
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Provides project-specific context and development templates for Cangjie/ArkTS projects, including modular design documents, FFI summaries, and code generation tools to assist with IDE-based development workflows.