i

idlize-cj-mcp

@PoivronMax/idlize-cj-mcp
0 Stars 8 次浏览 PoivronMax 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "cj-mcp": {
      "args": [
        "/home/maxime/ws/my_mcp_server/server.py"
      ],
      "command": "python",
      "env": {
        "PYTHONPATH": "/home/maxime/ws/my_mcp_server"
      }
    }
  }
}

服务介绍

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 可以让模型

  1. 自动获取相关语法文档从 Context7
  2. 自动获取项目全局约定从 cj://global
  3. 自动获取模块专有文档从 proj://modules/{module}
  4. 生成符合项目规范的代码

示例

module = "incremental engine"
task = "把增量引擎的navigation补齐帮我进行增量引擎开发"

cj_module_summary

总结模块设计的提示模板

参数

  • module (str) - 模块名称

返回内容

  • 模块目标与边界
  • 关键类型/类/组件
  • 状态与事件流转
  • 与其他模块的依赖关系
  • 已知坑点与注意事项

使用示例

示例 1使用 cj_module_dev prompt

在 Cursor 中你可以直接调用 prompt

请使用 cj_module_dev promptmodule = "incremental engine", 
task = "把增量引擎的navigation补齐帮我进行增量引擎开发"

模型会自动

  1. 读取 cj://global 获取全局规范
  2. 读取 proj://modules/incremental engine 获取增量引擎文档
  3. 根据任务生成符合规范的代码或文档

示例 2直接访问资源

模型可以直接请求资源

请读取 cj://syntax 了解仓颉语法
请读取 proj://modules/ui 了解 UI 模块设计

示例 3使用工具生成组件

请使用 gen_cj_component 工具生成一个名为 MyView 的组件

开发指南

添加新模块文档

  1. resources/modules/ 下创建模块目录支持中文名称
  2. 将模块相关的 .md 文档放入该目录
  3. 文档会自动被 proj://modules/{module} 资源聚合

示例

mkdir -p resources/modules/my_module
# 添加文档
echo "# My Module" > resources/modules/my_module/README.md

添加全局文档

  1. 将文档放入 resources/global/ 目录
  2. 支持子目录结构如 libs/std/
  3. 所有 .md 文件会自动被 cj://syntaxcj://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.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.jsoncommand 字段应指向虚拟环境的 Python 可执行文件

{
  "command": "/path/to/.venv/bin/python",
  "args": ["/path/to/server.py"]
}

贡献

欢迎提交 Issue 和 Pull Request


许可证

[根据项目实际情况填写]


更新日志

v1.0.0

  • 初始版本
  • 支持全局资源和模块资源
  • 提供组件生成工具
  • 提供模块开发提示模板# CJ-MCP Cangjie Project MCP Server

相关 MCP 服务