# 腾讯出行服务MCP接入指南

# 目录

  1. CodeBuddy 平台接入 MCP 服务
  2. Cursor 平台接入 MCP 服务
  3. Trae 平台接入 MCP 服务
  4. 个人代码接入 MCP 服务

# 1 CodeBuddy 平台接入 MCP 服务

# 1.1 获取腾讯出行服务 MCP key

进入腾讯出行服务开放平台:https://open.go.qq.com/ → 点击「注册」按钮

使用微信扫码/一键登录进入注册页面

填写手机号并获取验证码

点击开启服务之旅

选择「MCP 应用」→ 填写应用名称 → 选择联系人,完成应用创建

创建完成后,前往「应用详情」查看 KEY 值

# 1.2 在 CodeBuddy 中配置 MCP Tools

打开 CodeBuddy,点击顶部菜单栏「设置」→「MCP」,在 MCP 中点击「Add MCP」

在打开的 settings.json 文件中填入以下配置内容,替换 YOUR_API_KEY 为实际密钥,点击「保存」

{
  "mcpServers": {
    "tms-mcp": {
      "url": "https://weixin.go.qq.com/mcp/gw-stream-http/mcp",
      "headers":{
        "Authorization": "YOUR_API_KEY"
      },
      "transportType": "streamable-http"
    }
  }
}

Clipboard_Screenshot_1765274032.png

保存后回到设置页面中,此时服务状态应显示为「已连接」,并显示可用的mcp工具 Clipboard_Screenshot_1765274106.png

# 1.3 开始使用

关闭MCP配置,打开 Agent 对话框,切换模式为Craft 接下来就可以直接在对话框中输入需求,让 AI 为我们调用工具了,例如: "从武汉大学到汉口火车站打车多少钱" Clipboard_Screenshot_1765276377.png

# 2 Cursor 平台接入 MCP 服务

# 2.1 获取腾讯出行服务 MCP key

进入腾讯出行服务开放平台:https://open.go.qq.com/ → 点击「注册」按钮

使用微信扫码/一键登录进入注册页面

填写手机号并获取验证码

点击开启服务之旅

选择「MCP 应用」→ 填写应用名称 → 选择联系人,完成应用创建

创建完成后,前往「应用详情」查看 KEY 值

# 2.2 在 Cursor 中配置 MCP Tools

打开 Cursor,点击顶部菜单栏「设置」→「Tools & MCP」,在 MCP Tools 中点击「Add Custom MCP」 或者 「New MCP Server」

在打开的 mcp.json 文件中填入以下配置内容,替换 YOUR_API_KEY 为实际密钥,点击「保存」

{
  "mcpServers": {
    "tms-mcp": {
      "url": "https://weixin.go.qq.com/mcp/gw-stream-http/mcp",
      "headers":{
        "Authorization": "YOUR_API_KEY"
      },
      "transportType": "streamable-http"
    }
  }
}

回到设置页面中,此时服务状态应显示为「已连接」,并显示可用的mcp工具

# 2.3 开始使用

按下 CTRL/CMD + L 打开右侧 Agent 对话框

接下来就可以直接在对话框中输入需求,让 AI 为我们调用工具了,例如: "从武汉大学到汉口火车站打车多少钱"

# 3. Trae 平台接入 MCP 服务

# 3.1 获取 MCP key

进入腾讯出行服务开放平台:https://open.go.qq.com/ →点击「注册」按钮 使用微信扫码/一键登录进入注册页面

填写手机号并获取验证码 点击开启服务之旅

选择「MCP 应用」→ 填写应用名称 → 选择联系人,完成应用创建 创建完成后,前往「应用详情」查看 KEY 值

# 3.2 配置 MCP

打开 Trae,使用 CTRL/CMD + U 打开右侧对话框,点击「设置」→「MCP」→ 「手动添加」进行添加 在打开的手动配置页面中填入以下 JSON 信息,替换 YOUR_API_KEY 为实际密钥,点击「确认」

{
  "mcpServers": {
    "tms-mcp": {
      "url": "https://weixin.go.qq.com/mcp/gw-stream-http/mcp",
      "headers":{
        "Authorization": "YOUR_API_KEY"
      },
      "transportType": "streamable-http"
    }
  }
}

配置成功后,可以在设置页面查看已添加的 MCP 回到对话框中 ,选择「Builder with MCP」

# 3.3 开始使用

接下来就可以直接在对话框中输入需求,让 AI 为我们调用工具了,例如: "从武汉大学到汉口火车站打车多少钱"

# 4. 个人代码接入 MCP 服务

# 4.1 获取 MCP key

进入腾讯出行服务开放平台:https://open.go.qq.com/ →点击「注册」按钮

使用微信扫码/一键登录进入注册页面 填写手机号并获取验证码 点击开启服务之旅

选择「MCP 应用」→ 填写应用名称 → 选择联系人,完成应用创建

创建完成后,前往「应用详情」查看 KEY 值

# 4.2 开始使用: go语言demo

根据个人开发者的实际使用情况,可以支持sse协议和streamhttp协议 对应的 go.mod文件:

module mcp-simple-demo

go 1.21

require github.com/mark3labs/mcp-go v0.43.1

安装依赖:

go mod tidy

替换配置

将 YOUR_API_KEY 替换为实际的API密钥

demo示例:

package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/mark3labs/mcp-go/client"
    "github.com/mark3labs/mcp-go/client/transport"
    "github.com/mark3labs/mcp-go/mcp"
)

func main() {
    ctx := context.Background()
    // 1、测试SSE传输
    fmt.Println("=== 测试SSE传输 ===")
    err := testSSE(ctx)
    if err != nil {
        log.Fatalf("测试SSE传输失败: %v", err)
    }
    // 2、测试StreamHTTP
    fmt.Println("\n=== 测试StreamHTTP ===")
    err = testStreamHTTP(ctx)
    if err != nil {
        log.Fatalf("测试StreamHTTP失败: %v", err)
    }
}

// testSSE 测试SSE传输
func testSSE(ctx context.Context) error {
    // 1、创建SSE传输
    sseTransport, err := transport.NewSSE(
        "https://weixin.go.qq.com/mcp/gw-sse/sse", 
        transport.WithHeaders(map[string]string{
            "Authorization": "YOUR_API_KEY",
            "Content-Type":  "application/json",
        }),
    )
    if err != nil {
        return fmt.Errorf("创建SSE传输失败: %v", err)
    }
    // 2、启动传输,start接口是无限时长的
    if err = sseTransport.Start(ctx); err != nil {
        return fmt.Errorf("启动SSE传输失败: %v", err)
    }
    defer sseTransport.Close()
    // 3、创建客户端
    mcpClient := client.NewClient(sseTransport)
    defer mcpClient.Close()
    // 4、初始化客户端
    initRequest := mcp.InitializeRequest{
        Params: mcp.InitializeParams{
            ProtocolVersion: mcp.LATEST_PROTOCOL_VERSION,
            ClientInfo: mcp.Implementation{
                Name:    "MCP Client",
                Version: "1.0.0",
            },
        },
    }
    initCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
    defer cancel()
    _, err = mcpClient.Initialize(initCtx, initRequest)
    if err != nil {
        return fmt.Errorf("初始化失败: %v", err)
    }
    fmt.Println("✅ 客户端初始化成功")
    // 5、列出工具列表
    toolsCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
    defer cancel()
    toolsRequest := mcp.ListToolsRequest{}
    result, err := mcpClient.ListTools(toolsCtx, toolsRequest)
    if err != nil {
        return fmt.Errorf("获取工具列表失败: %v", err)
    }
    fmt.Printf("✅ 获取到 %d 个工具:\n", len(result.Tools))
    for i, tool := range result.Tools {
        fmt.Printf("%d. %s: %s\n", i+1, tool.Name, tool.Description)
    }
    return nil
}
// testStreamHTTP 测试StreamHTTP传输
func testStreamHTTP(ctx context.Context) error {
    // 1、创建StreamHTTP传输
    httpTransport, err := transport.NewStreamableHTTP(
        "https://weixin.go.qq.com/mcp/gw-stream-http/mcp", 
        transport.WithHTTPHeaders(map[string]string{
            "Authorization": "YOUR_API_KEY",
            "Content-Type":  "application/json",
        }),
    )
    if err != nil {
        return fmt.Errorf("创建StreamHTTP传输失败: %v", err)
    }
    // 2、启动传输
    startCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
    defer cancel()
    if err := httpTransport.Start(startCtx); err != nil {
        return fmt.Errorf("启动StreamHTTP传输失败: %v", err)
    }
    defer httpTransport.Close()
    // 3、创建客户端
    mcpClient := client.NewClient(httpTransport)
    defer mcpClient.Close()
    // 4、初始化客户端
    initRequest := mcp.InitializeRequest{
        Params: mcp.InitializeParams{
            ProtocolVersion: mcp.LATEST_PROTOCOL_VERSION,
            ClientInfo: mcp.Implementation{
                Name:    "MCP Client",
                Version: "1.0.0",
            },
        },
    }
    initCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
    defer cancel()
    _, err = mcpClient.Initialize(initCtx, initRequest)
    if err != nil {
        return fmt.Errorf("初始化失败: %v", err)
    }
    fmt.Println("✅ 客户端初始化成功")
    // 5、列出工具列表
    toolsCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
    defer cancel()
    toolsRequest := mcp.ListToolsRequest{}
    result, err := mcpClient.ListTools(toolsCtx, toolsRequest)
    if err != nil {
        return fmt.Errorf("获取工具列表失败: %v", err)
    }
    fmt.Printf("✅ 获取到 %d 个工具:\n", len(result.Tools))
    for i, tool := range result.Tools {
        fmt.Printf("%d. %s: %s\n", i+1, tool.Name, tool.Description)
    }
    return nil
}