Solon v3.10.7

MCP、OpenAPI、LSP 外部能力接入

</> markdown
2026年6月7日 上午10:43:45

SolonCode 可以把外部工具、业务接口和代码语义能力接入给 AI 使用。常见入口有三类:

  • MCP:把工具或服务封装成 AI 可调用的工具。
  • OpenAPI:把已有业务 REST 接口交给 AI 调用。
  • LSP:让 AI 获得代码符号、定义、引用等语义理解能力。

本文只做总览、选择指南和最小配置。完整实战请继续阅读后续文章。

1、三者怎么选

能力适合接入什么典型场景
MCP工具、知识库、搜索、CI、Issue、文件服务查资料、查任务、操作第三方系统
OpenAPI已有 REST 业务接口(国内企业有海量存货)查询订单、查询用户、触发测试环境流程(要注意:写入/删除/付款类接口)
LSP(本机已安装的)语言服务器查定义、查引用、理解代码结构

简单判断:

  • 你要接一个“工具生态”或“标准 Agent 工具服务”,优先 MCP。
  • 你已有 OpenAPI 文档,想让 AI 调业务接口,优先 OpenAPI。
  • 你想提升代码理解、符号定位和引用分析能力,启用 LSP。

2、Web 设置页管理(建议优先使用 Web 设置)

启动 Web:

soloncode web 0

进入设置页后,可以管理:

  • MCP 服务器
  • OpenAPI 服务器
  • LSP 服务器
  • 工具或接口启停
  • 作用域与挂载

新用户建议优先用 Web 设置页添加、测试和启停外部能力;熟悉字段后再手写 YAML。

3、MCP 最小配置

本地进程 MCP

soloncode:
  mcpEnabled: true
  mcpServers:
    memory:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-memory"]
      enabled: true

HTTP Streamable MCP

soloncode:
  mcpEnabled: true
  mcpServers:
    remote-tools:
      type: "streamable"
      url: "https://example.com/mcp"
      headers:
        Authorization: "Bearer xxx"
      timeout: "120s"
      enabled: true

常用字段:

字段说明
typestreamable 或省略为本地进程方式
urlHTTP MCP 地址
command本地 MCP 启动命令
args命令参数
env环境变量
headersHTTP 请求头
timeout超时时间
enabled是否启用
scopeuserworkspace
disallowedTools禁用的接口或工具列表

4、OpenAPI 最小配置

soloncode:
  openApiEnabled: true
  apiServers:
    order-service:
      docUrl: "https://order.example.com/openapi.json"
      apiBaseUrl: "https://order.example.com"
      headers:
        Authorization: "Bearer xxx"
      enabled: true

常用字段:

字段说明
docUrlOpenAPI 文档地址
apiBaseUrl覆盖文档中的服务地址
headers鉴权或业务请求头
enabled是否启用
scopeuserworkspace
disallowedTools禁用的接口或工具列表

5、LSP 最小配置

Java

soloncode:
  lspEnabled: true
  lspServers:
    java:
      command: ["jdtls"]
      extensions: [".java"]
      enabled: true

TypeScript / JavaScript

soloncode:
  lspEnabled: true
  lspServers:
    typescript:
      command: ["typescript-language-server", "--stdio"]
      extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"]
      enabled: true

Python

soloncode:
  lspEnabled: true
  lspServers:
    python:
      command: ["pyright-langserver", "--stdio"]
      extensions: [".py", ".pyi"]
      enabled: true

启用 LSP 前,需要先安装对应语言服务器。SolonCode 可以配置 LSP,但不会自动替你安装所有语言服务器。

6、组合示例

soloncode:
  mcpEnabled: true
  openApiEnabled: true
  lspEnabled: true

  mcpServers:
    memory:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-memory"]

  apiServers:
    user-service:
      docUrl: "https://api.example.com/openapi.json"
      apiBaseUrl: "https://api.example.com"
      headers:
        Authorization: "Bearer xxx"

  lspServers:
    java:
      command: ["jdtls"]
      extensions: [".java"]
    typescript:
      command: ["typescript-language-server", "--stdio"]
      extensions: [".ts", ".tsx", ".js", ".jsx"]

7、权限建议

外部能力接入前,先按下面顺序评估:

  1. 是否真的需要接入。
  2. 是否可以先只接只读能力。
  3. 是否可以禁用写入、删除、付款、发消息等高风险接口。
  4. Token 是否具备最小权限。
  5. 是否需要在提示词或 AGENTS.md 中写明“写入前必须确认”。

更完整的安全建议见 38-卅八:权限与安全实践-让-AI-安全使用工具.md

8、常见排障

问题检查项
MCP 启动失败command 是否存在,Node/npm 是否安装,args 是否正确
HTTP MCP 无响应URL、鉴权头、代理、证书、超时时间
OpenAPI 无法加载docUrl 是否可访问,文档是否为合法 OpenAPI
AI 不调用接口描述不清、工具过多、接口被禁用、任务表达不明确
LSP 没有效果语言服务器是否安装,extensions 是否覆盖项目文件
工具过多干扰判断关闭不必要服务,只保留当前任务需要的能力