用 TRAE 从零开始跑通仓颉编程语言开发的MCP服务器——全流程实战笔记

为什么要认识 MCP 与TRAE?

MCP(Model-Context-Protocol) 被戏称为“大模型时代的 USB 接口”。它把外部能力(数据库、浏览器、设计稿、甚至自建服务)抽象成标准化的 Tool/Resource,任何遵循协议的 AI工具(包括 Trae 、Claude 等)都能“即插即用”,无需重复造轮子。

TRAE 是字节推出的 AI 编程 IDE,内置了 可视化 MCP 市场,支持零代码添加官方或社区服务器,也允许手动接入自建服务器。一句话总结:

在 TRAE里,自然语言 + MCP = 可执行的复杂工作流


10 分钟用仓颉编程语言写一个 MCP 服务器

以下示例基于 Cangjie Magic SDK,如你本地未装仓颉,可先在 官网 一键安装。

1. 新建工程

mkdir mcp-cangjie-demo && cd mcp-cangjie-demo
cangjie init          # 生成标准仓颉项目

2. 添加依赖

编辑 cjpm.toml,增加:

[dependencies]
magic = { path = "/mnt/d/CangjieMagic" }

3. 核心代码 src/main.cj

下面的代码实现了一个基于MCP框架的智能体服务,主要包含工具函数定义、智能体配置和服务器启动逻辑。

package mcpsvr

import magic.dsl.*
import magic.prelude.*
import magic.config.Config
import magic.mcp.SseMCPServer

@tool[description: "对两个整数进行魔术加法"]
func add(a: Int64, b: Int64): Int64 {
    return a * 2 + b
}

@tool[description: "对两个整数进行魔术乘法"]
func multiply(a: Int64, b: Int64): Int64 {
    return a * b
}

@agent[
    model: "deepseek:deepseek-chat",
    description: "魔术计算器,支持对两个整数进行魔术加法和魔术乘法",
    tools: [add, multiply]
]

class Calc {
    @prompt(
        "精通小学课本上的算术计算"
        "对于加减乘除运算得心应手"
    )
}

main() {
    Config.logLevel = "INFO"
    Config.logFile = "./logs/mcp-server.log"

    let agent = Calc()
    SseMCPServer.startWith([agent], '127.0.0.1', 8000)
}

程序中定义了两个工具函数:addmultiply:使用@tool注解标记为智能体可用工具,并提供功能描述;add函数实现特殊加法逻辑:第一个参数乘2后加第二个参数;multiply函数实现常规乘法逻辑。

定义Calc智能体类,@agent注解配置,使用deepseek:deepseek-chat模型,描述为"魔术计算器",支持指定的数学运算关联工具函数add和multiply,@prompt注解设置智能体的系统提示,强调算术计算能力。

主函数中配置日志级别为INFO,日志文件路径为./logs/mcp-server.log,创建Calc智能体实例,通过SseMCPServer.startWith启动服务器,服务器绑定地址127.0.0.1,端口8000,并注册Calc智能体。

4. 一键编译 & 运行

执行下面的命令就可以运行程序

cjpm run --name mcpsvr

然后启动浏览器,输入http://localhost:8000/sse就可以查看MCP服务器是否正常启动。

上面的信息表示服务器正常启动,并发送握手信息。

把服务器挂到TRAE

Step 1 安装/更新 TRAE

直接到 trae.cn 下载最新版即可,Windows / macOS均支持。

Step 2 手动添加 MCP

  1. 打开 IDE → 右上角 AI 图标 → 设置 → MCP

  2. 点击 “添加 MCP Server” → 手动配置,填入下面的信息:

{
  "mcpServers": {
    "my-test-server": {
      "url": "http://127.0.0.1:8000/sse",
      "disabled": false,
      "autoApprove": []
    }
  }
}

Step 3 开测!

在对话栏点击@选择“Builder with MCP”。

输入:目前支持哪些mcp

TRAE会答复目前所支持的MCP服务器:

看来TRAE已经正确地连接上我们的MCP服务器了。

然后输入:对3和5进行魔术加法运算

TRAE经过思考后给出如下提示:

此时TRAE打算调用相应的工具进行魔术加法,我们点击Run即可。

由此可见,TRAE调用我们的工具得到正确的结果。

结束语

恭喜你,已经用仓颉编程语言跑通了第一个 MCP 服务器!
接下来可以:

  • 把自然语言换成 SQL 查询K8s 指令内部 API 等任何企业级能力;

  • 将服务器部署到云端,让团队所有人通过TRAE 共享;

  • 甚至把该服务器开源到 MCP 市场,成为官方推荐工具。

大模型只是大脑,MCP 才是让它长出手脚的神经系统。
在TRAE的加持下,仓颉编程语言也能成为这条神经系统里的一环——让 AI 真正帮你干活。

Happy Hacking!

### 使用仓颉编程语言实现五子棋小游戏 仓颉编程语言是一种基于自然语言处理技术的人工智能驱动型开发工具,能够帮助开发者快速构建应用程序。以下是关于如何利用仓颉编程语言设计并实现一个简单的五子棋游戏的核心思路和技术要点。 #### 1. 游戏逻辑的设计 五子棋的游戏核心在于判断玩家的落子位置以及检测是否有连续五个相同颜色的棋子形成直线(横线、竖线或斜线)。可以采用二维数组来表示棋盘的状态,并过遍历算法检查胜利条件[^1]。 ```python def check_win(board, row, col, player): directions = [(0, 1), (1, 0), (1, 1), (1, -1)] # 横向、纵向、正对角线、反对角线方向 for dr, dc in directions: count = 1 r, c = row + dr, col + dc while 0 <= r < len(board) and 0 <= c < len(board[0]) and board[r][c] == player: count += 1 r += dr c += dc r, c = row - dr, col - dc while 0 <= r < len(board) and 0 <= c < len(board[0]) and board[r][c] == player: count += 1 r -= dr c -= dc if count >= 5: return True return False ``` #### 2. 用户交互界面 为了简化用户体验,可以过命令行输入坐标的方式完成下棋操作;如果希望进一步提升视觉效果,则可考虑引入图形化库绘制动态更新的棋盘状态。 #### 3. AI对手模块 对于单人模式下的电脑自动走步策略,可以选择随机放置或者基于简单启发式规则评估当前局面价值后决定最佳行动方案[^1]。 ```python import random def ai_move(board): empty_cells = [] for i in range(len(board)): for j in range(len(board[i])): if not board[i][j]: empty_cells.append((i,j)) if empty_cells: return random.choice(empty_cells) else: raise Exception('No available moves.') ``` #### 4. 集成至仓颉平台 将以上各部分封装为独立函数并过调用接口组合起来,在Trae平台上部署运行即可体验完整的五子棋玩法。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值