MCP 服务器
了解如何在 VJSP 中使用模型上下文协议(MCP)模块,实现外部工具集成、数据库连接并扩展开发环境。
模型上下文协议(MCP)服务器通过运行 MCP 服务器,让 VJSP 能够连接外部工具、系统和数据库。
这些服务器支持以下功能:
实现外部集成:对接外部工具与系统
创建可扩展接口:支持自定义功能扩展
支持复杂交互:与开发环境进行深度联动
支持合作伙伴贡献:接纳第三方专属功能模块
如何在 VJSP 中配置模型上下文协议(MCP)
MCP 的使用与自定义配置
随着人工智能系统的不断发展,它们仍受限于训练数据,无法获取实时信息或调用专业工具。模型上下文协议(MCP)Model Context Protocol 解决了这一问题,它让 AI 模型能够连接外部数据源、工具和环境。这一机制实现了 AI 系统与更广泛数字世界之间的顺畅信息共享与能力互通。该标准由 Anthropic 推出,统一了提示词、上下文和工具调用的交互逻辑,是构建真正实用的 AI 体验的核心 —— 这类体验可通过自定义工具灵活配置。
MCP 在 VJSP 中的工作原理
目前,可通过模型上下文协议标准配置自定义工具,实现提示词、上下文与工具使用的统一管理。
可通过 mcpServers 字段将 MCP 服务器添加到中心配置中。你可以在 此处 浏览可用的 MCP 服务器。
ⓘ MCP 仅支持在 智能体(agent) 模式下使用。
快速入门:配置你的首个 MCP 服务器
以下是配置新 MCP 服务器并应用于配置文件的快速示例:
在工作区根目录创建名为 .vjsp/mcpServers 的文件夹
向该文件夹中添加文件 playwright-mcp.yaml
写入以下内容并保存
name: Playwright mcpServer
version: 0.0.1
schema: v1
mcpServers:
- name: 浏览器搜索
command: npx
args:
- "@playwright/mcp@latest"现在,输入以下指令测试你的 MCP 服务器:
打开浏览器并访问 百度新闻。如何通过 MCP 配置文档搜索
你可以配置 MCP 服务器,直接从配置中搜索文档。这对于获取配置和功能相关帮助尤为实用。
VJSP 文档 MCP 服务器允许你在智能体对话中,直接搜索并获取 VJSP 文档的相关信息。
配置步骤
配置 VJSP
在工作区根目录创建名为
.vjsp/mcpServers的文件夹向该文件夹中添加文件
vjsp-docs-mcp.yaml写入以下内容并保存:
name: VJSP 文档 MCP
version: 0.0.1
schema: v1
mcpServers:
- uses: dev/vjsp-docs-mcp启用智能体(Agent)模式
MCP 服务器仅在智能体模式下生效。测试前请确保在 VJSP 中切换至智能体模式。
使用示例
配置完成后,可通过以下方式使用 MCP 服务器搜索 VJSP 文档:
模型配置相关帮助
如何在 VJSP 中从 Bedrock 添加 Claude 4 Sonnet 作为模型?上下文提供器相关查询
VJSP 支持哪些上下文提供器?自定义配置相关查询
如何在 VJSP 的配置中添加自定义规则?内置工具配置说明
| 工具 | 说明 |
|---|---|
| read_file | 若需查看已有文件内容,可使用此工具。 |
| creat_new_file | 创建新文件夹。仅在文件不存在且需要创建时使用。 |
| run_terminal_command | 在当前目录中运行终端命令。Shell 无状态,不会记录之前的命令。若在后台运行命令,务必建议使用 Shell 函数包装命令,并以 sh -c '...' 格式将其放在 Shell 命令块中。请勿执行需要特殊终端权限的操作,选择针对 x86 和 arm64 框架优化的终端命令脚本,以及 Shell 语法。 |
| file_glob_search | 使用通配符模式在项目中递归搜索文件。支持 "*" 用于递归目录搜索。不会显示大量构建、缓存、密钥类文件(改用cache工具)。输出可能被截断,请使用精准的匹配模式。 |
| view_diff | 查看当前工作内容的差异。 |
| read_currently_open_file | 读取 IDE 中当前打开的文件。若用户提及你无法查看的文件,或请求操作的内容似乎缺失,可尝试使用此工具。 |
| ls | 列出指定目录下的文件和文件夹。 |
| creat_rule_block | 创建可在后续对话中引用的“规则”。当你想要建立需一致遵循的代码规范/偏好,或希望避免重复犯错时,可使用此工具。若要修改已有规则,请改用 edit 工具。 规则类型: Always :仅包含“rule”(始终纳入模型上下文) Auto Attached :包含“rule”“glob”和/或“regex”(当文件匹配模式时触发) Agent Requested:包含“rule”和“description”(由 AI 根据描述决定是否应用) Manual:仅包含“rule”(仅在手动调用时纳入......) |
| fetch_url_content | 可通过 URL 查看网站内容。请勿用于文件。 |
| request_rule | 使用此工具检索包含更多上下文/指令的额外“规则”(基于其描述)。可用规则:无可用规则。 |
| search_web | 执行网络搜索并返回顶部结果。请谨慎使用 —— 仅用于需要专业、外部和/或最新知识问题。普通编程问题不需要网络搜索。 |
| multi_edit | 使用此工具对单个文件执行多次编辑操作,可高效完成多个查找替换操作。若要对文件执行多次编辑,请提供以下内容: 文件路径:要修改的文件路径(相对于项目工作区根目录,需验证目录是否存在) 编辑内容:要执行的编辑操作数组,每个操作包含: old_string:要替换的文本(必须精准匹配目标内容,包括所有空格/缩进) new_string:替换 old_string 的文本 (触发方式:先询问) |
| grep_search | 使用 ripgrep 在仓库中执行这个正则表达式搜索。不会包含大量构建、缓存、密钥类文件的结果。输出可能被截断,请使用精准的查询条件。 |
问题排查
MCP 服务器未加载
检查配置文件:确保 YAML 配置中
uses字段正确设置为dev/vjsp-docs-mcp确认模式切换:MCP 服务器仅支持智能体模式,需切换后使用
重启 VJSP:尝试重启 VJSP 扩展程序
无搜索结果返回
验证网络连接:MCP 服务器需要联网才能搜索文档
调整查询格式:尝试重新组织搜索语句的表述方式
测试已知主题:搜索文档中已明确覆盖的功能(如“模型配置”)进行验证
如何配置 MCP 服务器
如需搭建自定义 MCP 服务器,请先阅读 MCP 快速入门文档,然后 创建 mcpServers 配置,或在你的 配置文件 中添加本地 MCP 服务器配置块:
# ...
mcpServers:
- name: SQLite MCP
command: npx
args:
- "-y"
- "mcp-sqlite"
- "/path/to/your/database.db" # 你的数据库文件路径
# ...ⓘ 若在 .vjsp/mcpServers/ 目录中创建独立的配置文件,需包含必要的元数据字段(name、version、schema),如上述快速入门示例所示。
MCP 服务器属性配置说明
MCP 组件包含几个专用于 MCP 服务器的附加属性:
name:MCP 服务器的显示名称type:MCP 服务器类型,可选值为sse、stdio、streamable-httpcommand:启动 MCP 服务器的命令args:传递给启动命令的参数env:注入到命令中的环境变量(用于存储密钥等敏感信息)
如何选择 MCP 传输类型
MCP 目前支持基于 HTTP 的传输方式实现远程服务器连接,突破了传统本地标准输入输出(stdio)传输的限制。这一特性支持集成云托管 MCP 服务器和分布式架构。
如何使用服务器发送事件(SSE)传输
如需实时流式通信,可使用 SSE 传输方式:
# ...
mcpServers:
- name: 服务器名称
type: sse
url: https://.... # 远程 SSE 服务器地址
# ...如何使用标准输入 / 输出(stdio)传输
对于通过标准输入输出进行通信的本地 MCP 服务器:
# ...
mcpServers:
- name: 服务器名称
type: stdio
command: npx
args:
- "@modelcontextprotocol/server-sqlite"
- "/path/to/your/database.db" # 你的数据库文件路径
# ...如何使用流式 HTTP 传输
如需支持流式传输的标准 HTTP 通信:
# ...
mcpServers:
- name: 服务器名称
type: streamable-http
url: https://.... # 远程 HTTP 服务器地址
# ...这些远程传输选项允许你连接到部署在远程基础设施上的 MCP 服务器,支持更灵活的部署架构,并实现多个客户端共享服务器资源。
如何在 MCP 服务器中管理密钥
部分 MCP 服务器需要使用 API 密钥或其他敏感信息。你可以利用本地存储的环境密钥,也可以访问 Agent Hub 中托管的密钥。如需使用 Hub 密钥,可在 MCP 的 env 配置块中使用 inputs 属性替代 secrets。
# ...
mcpServers:
- name: Supabase MCP
command: npx
args:
- -y
- "@supabase/mcp-server-supabase@latest"
- --access-token
- ${{ secrets.SUPABASE_TOKEN }}
env:
SUPABASE_TOKEN: ${{ secrets.SUPABASE_TOKEN }}
- name: GitHub
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-github"
env:
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_PERSONAL_ACCESS_TOKEN }}
# ...