MCP、OpenAPI、LSP 外部能力接入
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
常用字段:
| 字段 | 说明 |
|---|---|
type | streamable 或省略为本地进程方式 |
url | HTTP MCP 地址 |
command | 本地 MCP 启动命令 |
args | 命令参数 |
env | 环境变量 |
headers | HTTP 请求头 |
timeout | 超时时间 |
enabled | 是否启用 |
scope | user 或 workspace |
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
常用字段:
| 字段 | 说明 |
|---|---|
docUrl | OpenAPI 文档地址 |
apiBaseUrl | 覆盖文档中的服务地址 |
headers | 鉴权或业务请求头 |
enabled | 是否启用 |
scope | user 或 workspace |
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、权限建议
外部能力接入前,先按下面顺序评估:
- 是否真的需要接入。
- 是否可以先只接只读能力。
- 是否可以禁用写入、删除、付款、发消息等高风险接口。
- Token 是否具备最小权限。
- 是否需要在提示词或
AGENTS.md中写明“写入前必须确认”。
更完整的安全建议见 38-卅八:权限与安全实践-让-AI-安全使用工具.md。
8、常见排障
| 问题 | 检查项 |
|---|---|
| MCP 启动失败 | command 是否存在,Node/npm 是否安装,args 是否正确 |
| HTTP MCP 无响应 | URL、鉴权头、代理、证书、超时时间 |
| OpenAPI 无法加载 | docUrl 是否可访问,文档是否为合法 OpenAPI |
| AI 不调用接口 | 描述不清、工具过多、接口被禁用、任务表达不明确 |
| LSP 没有效果 | 语言服务器是否安装,extensions 是否覆盖项目文件 |
| 工具过多干扰判断 | 关闭不必要服务,只保留当前任务需要的能力 |