---
title: "MCP、OpenAPI、LSP 外部能力接入"
---


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：

```bash
soloncode web 0
```

进入设置页后，可以管理：

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

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


<img src="/img/e1070e644eec467a90ff35b21cb348c3.png" width="500" />


### 3、MCP 最小配置

#### 本地进程 MCP

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

#### HTTP Streamable MCP

```yaml
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 最小配置

```yaml
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

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

#### TypeScript / JavaScript

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

#### Python

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

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

### 6、组合示例

```yaml
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` 是否覆盖项目文件 |
| 工具过多干扰判断 | 关闭不必要服务，只保留当前任务需要的能力 |
