V语言MCP服务器
用V编写的模型上下文协议(MCP)服务器,提供对V编程语言文档、示例、标准库模块和V UI示例的全面访问。
概述
此MCP服务器使AI助手和其他工具能够通过标准化协议访问V语言资源。它提供了用于搜索文档、浏览示例、探索标准库和访问V UI示例的工具。
特性
- 文档访问:浏览和搜索V语言文档
- 代码示例:列出、检索和搜索V代码示例
- 标准库:探索V标准库模块的详细信息
- V UI示例:Access V UI框架示例(当V-UI子模块可用时)
- 语法参考:V语言特性的快速参考和详细解释
- 缓存:内置缓存系统,提高性能
- 搜索:在文档和示例中进行全文搜索
需求
- V编程语言 已安装并位于PATH上
- V存储库克隆(用于文档和示例)
- 当用作子模块时,父模块 v-mcp 存储库充当V存储库 - 对于独立使用,设置 V_REPO_PATH 环境变量
- 可选:v-ui子模块(用于v ui示例)
- 用作子模块时自动检测 v-mcp - 对于独立使用,设置 V_UI_PATH 环境变量
建筑
视窗
.\build.bat这将创建 v-mcp-server.exe 在项目根中。
Linux/macOS
./build.sh这将创建 v-mcp-server 在项目根中。
手动构建
或者,您可以手动构建:
窗户:
v -o v-mcp-server.exe .\src\main.vLinux/macOS:
v -o v-mcp-server ./src/main.v注: 构建脚本使用.\src\main.v(Windows)或./src/main.v(Unix)以避免V编译器的模块路径解析问题。
配置
服务器是通过环境变量配置的:
必需
V_REPO_PATH:V存储库根目录的路径
- 默认值:尝试从父目录自动检测
可选的
V_UI_PATH:v-ui存储库的路径(用于v ui示例)
- 违约: $V_REPO_PATH/v-ui (如果存在)
V_CACHE_TTL_SECONDS:缓存生存时间(秒)
- 违约: 300 (5分钟)
V_MAX_SEARCH_RESULTS:要返回的最大搜索结果数
- 违约: 50
V_LOG_LEVEL:日志记录级别(信息、调试、错误等)
- 违约: INFO
示例配置
export V_REPO_PATH=/path/to/v
export V_UI_PATH=/path/to/v-ui
export V_CACHE_TTL_SECONDS=600
export V_MAX_SEARCH_RESULTS=100用法
服务器通过stdio上的JSON-RPC 2.0进行通信。它从stdin读取请求并将响应写入stdout。
运行服务器
./v-mcp-server或者使用环境变量:
V_REPO_PATH=/path/to/v ./v-mcp-server可用工具
文档工具
get_v_documentation([section])-获取V文档,可选择用于特定部分search_v_docs(query)-搜索V文档
代码示例
list_v_examples()-列出所有可用的V代码示例get_v_example(name)-获取特定示例的完整源代码search_v_examples(query)-搜索示例代码
标准库
list_v_stdlib_modules()-列出所有V标准库模块get_v_module_info(module_name)-获取特定模块的详细信息
V UI示例
list_v_ui_examples()-列出所有可用的V UI代码示例get_v_ui_example(name)-获取特定V UI示例的完整源代码search_v_ui_examples(query)-搜索V UI示例代码
语言参考
explain_v_syntax(feature)-解释V语言特性(变量、数组、结构、函数、control_flow、模块、错误处理、并发性)get_v_quick_reference()-快速获取V语法参考
配置和缓存
get_v_config()-显示当前服务器配置和缓存统计信息clear_v_cache()-清除缓存内容以获得新结果
帮助
get_v_help()-显示帮助信息
项目结构
.
├── src/
│ ├── main.v # Entry point and JSON-RPC message loop
│ ├── mcp/
│ │ └── mcp.v # JSON-RPC 2.0 protocol implementation
│ ├── server/
│ │ ├── cache.v # TTL-based caching system
│ │ ├── config.v # Configuration management
│ │ └── docs_server.v # Documentation server implementation
│ └── tools/
│ └── tools.v # Tool registry and handlers
├── build.bat # Windows build script
├── build.sh # Linux/macOS build script
├── build.bat # Windows build script
├── build.sh # Linux/macOS build script
├── v.mod # V module definition
└── README.md # This file建筑
服务器采用模块化架构:
- 主控程序:JSON-RPC 2.0协议处理
- 服务器:核心服务器功能,包括缓存、配置和文档访问
- 工具:工具注册表和单个工具处理程序
- 主要的:编排消息循环的入口点
缓存
服务器实现了基于TTL的缓存系统以提高性能:
- 缓存条目在配置的TTL后过期(默认值:5分钟)
- 缓存数据包括文档部分、示例列表和模块信息
- 使用
clear_v_cache()强制刷新缓存内容
错误处理
服务器实现了正确的JSON-RPC 2.0错误处理:
- 无效JSON的解析错误
- 格式错误的请求出现无效请求错误
- 方法未找到未知工具的错误
- 不正确的参数导致无效的参数错误
- 服务器端问题的内部错误
整合
该服务器被设计为主V MCP存储库中的子模块(v-mcp).它提供特定于V的功能,而父存储库处理MCP服务器管理和编排。
作为子模块
当用作 v-mcp 存储库:
- 服务器会自动从父目录中检测V存储库
- 自动检测V UI子模块(如果存在)
- 所有路径都是相对于父存储库结构解析的
独立使用
此服务器也可以独立使用:
- 设置
V_REPO_PATH指向V存储库的环境变量 - 可选设置
V_UI_PATH如果V UI存储库位于其他位置 - 如上所述构建并运行服务器
发展
模块结构
代码被组织成模块:
main-入口点mcp-JSON-RPC协议server-服务器功能tools-工具操作员
添加新工具
- 在中添加处理程序函数
src/tools/tools.v - 在中注册处理程序
register_all()方法 - 使用以下工具实现工具逻辑
VDocumentationServerAPI
许可证
该项目是V MCP生态系统的一部分。有关许可证信息,请参阅父存储库。
贡献
这是主V MCP存储库的一个子模块。应通过父存储库的贡献过程进行贡献。
