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.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CJ-MCPsummarize the UI module documentation for me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CJ-MCP — Cangjie Project MCP Server
一个最小可用、可扩展的 Model Context Protocol (MCP) 服务器,用于在 IDE(如 Cursor)里为模型提供:
项目专有上下文(模块化的设计文档与规范)
Cangjie/ArkTS 开发模板(工具与提示模板)
它非常适合与 Context7(或任何“Cangjie 语法/标准库参考”的 MCP)同时启用:
Context7 负责语言/语法/标准库
CJ-MCP 负责你项目的专有知识与流程
目录结构详解
my_mcp_server/
├── server.py # MCP 服务器主程序(FastMCP + stdio)
├── prompts.json # 提示模板配置文件(可选)
├── README.md # 本文件
├── resources/ # 暴露给模型的只读资料
│ ├── global/ # 全局通用文档
│ │ ├── CANGJIE_C_FFI_SUMMARY.md # Cangjie-C FFI 使用总结
│ │ └── libs/ # 标准库文档(可选)
│ │ └── std/ # 标准库各模块文档
│ └── modules/ # 各模块专属文档(按模块拆分上下文)
│ ├── incremental engine/ # 增量引擎模块
│ │ ├── 增量引擎串讲.md
│ │ ├── 增量引擎调用流程总结.md
│ │ ├── 仓颉函数调用流程详解.md
│ │ ├── 仓颉增量引擎相关概念解析.md
│ │ ├── 仓颉状态变更失效和更新机制详解.md
│ │ └── Dependency系统对比分析.md
│ ├── ui/ # UI 模块
│ │ ├── CALLBACK_FFI_DESIGN.md
│ │ └── onClick_Callback_Flow_Analysis.md
│ └── serialization_deserialization/ # 序列化模块(待补充)
└── .cursor/ # Cursor 配置(在项目根目录,不在本仓库)
└── mcp.json # MCP 服务器配置快速开始
环境准备(conda 或 python venv 都行)
# 任选其一
# (A) conda
conda create -n mcp-env python=3.11 -y
conda activate mcp-env
pip install -r requirements.txt
# (B) python venv
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# 在仓库根运行
python server.py
# 成功的话会“静默挂起”——表示在 stdio 等待 MCP 客户端连接
### 在 Cursor 里注册 MCP
重要:`.cursor/mcp.json` 要放在你打开的项目根目录(与 `.git` 同层)。
在项目根目录创建 `.cursor/mcp.json`(如果不存在),添加以下配置:
```json
{
"mcpServers": {
"cj-mcp": {
"command": "python",
"args": ["/home/maxime/ws/my_mcp_server/server.py"],
"env": {
"PYTHONPATH": "/home/maxime/ws/my_mcp_server"
}
}
}
}注意:
将
/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")
使用示例:
获取增量引擎模块文档:proj://modules/incremental engine
获取 UI 模块文档:proj://modules/ui工具(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})生成符合项目规范的代码
示例:
module = "incremental engine"
task = "把增量引擎的navigation补齐,帮我进行增量引擎开发"cj_module_summary
总结模块设计的提示模板。
参数:
module(str) - 模块名称
返回内容:
模块目标与边界
关键类型/类/组件
状态与事件流转
与其他模块的依赖关系
已知坑点与注意事项
使用示例
示例 1:使用 cj_module_dev prompt
在 Cursor 中,你可以直接调用 prompt:
请使用 cj_module_dev prompt,module = "incremental engine",
task = "把增量引擎的navigation补齐,帮我进行增量引擎开发"模型会自动:
读取
cj://global获取全局规范读取
proj://modules/incremental engine获取增量引擎文档根据任务生成符合规范的代码或文档
示例 2:直接访问资源
模型可以直接请求资源:
请读取 cj://syntax 了解仓颉语法
请读取 proj://modules/ui 了解 UI 模块设计示例 3:使用工具生成组件
请使用 gen_cj_component 工具生成一个名为 MyView 的组件开发指南
添加新模块文档
在
resources/modules/下创建模块目录(支持中文名称)将模块相关的
.md文档放入该目录文档会自动被
proj://modules/{module}资源聚合
示例:
mkdir -p resources/modules/my_module
# 添加文档
echo "# My Module" > resources/modules/my_module/README.md添加全局文档
将文档放入
resources/global/目录支持子目录结构(如
libs/std/)所有
.md文件会自动被cj://syntax和cj://global资源聚合
扩展工具
在 server.py 中添加新的 @mcp.tool() 装饰器函数:
@mcp.tool()
def my_custom_tool(param1: str, param2: int = 10) -> str:
"""
工具描述。
"""
# 实现逻辑
return result扩展提示模板
在 server.py 中添加新的 @mcp.prompt() 装饰器函数:
@mcp.prompt()
def my_custom_prompt(context: str) -> str:
"""
提示模板描述。
"""
return f"""
你的提示模板内容...
[上下文] {context}
"""依赖说明
Python 依赖
主要依赖:
mcp- Model Context Protocol 服务器框架(FastMCP)
安装:
pip install mcp或创建 requirements.txt:
mcp>=0.1.0然后安装:
pip install -r requirements.txtPython 版本
建议使用 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 可执行文件:
{
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/server.py"]
}贡献
欢迎提交 Issue 和 Pull Request!
许可证
[根据项目实际情况填写]
更新日志
v1.0.0
初始版本
支持全局资源和模块资源
提供组件生成工具
提供模块开发提示模板# CJ-MCP — Cangjie Project MCP Server