语言化采样MCP服务器
一种模型上下文协议(MCP)服务器,提供语言化采样(VS)提示模板和响应处理实用程序,以减轻LLM输出中的模式崩溃。
概述
口头抽样是一种无需培训的提示策略,可将法学硕士的多样性提高2-3倍。它的工作原理是要求模型生成多个具有概率的响应,然后从分布的尾部进行采样,以鼓励创造性的、不太常见的输出。
此MCP服务器提供 三个核心工具 共同实施VS方法:
vs_create_prompt-为任何任务生成优化的VS提示vs_process_response-解析LLM响应并选择不同的输出vs_recommend_params-获取特定型号的VS参数建议
特性
核心VS工具
- 快速生成:创建针对不同模型优化的研究支持的VS提示
- 响应处理:解析XML格式的响应并实现尾部采样
- 模型优化:为20多种当前LLM型号提供参数建议
模型支撑
支持所有主要供应商的最新型号:
- Anthropic:克劳德十四行诗4.5,俳句4.5,作品4.1
- OpenAI:GPT-5.1、GPT-5迷你/纳米/专业、GPT-4.1系列、o4迷你
- 谷歌:双子座2.5 Pro/Flash,双子座1.5 Pro
- 元/开源:Calma 3.3,DeepSeek R1,QWEN3
安装
选项1:从npm安装(推荐)
npm install -g verbalized-sampling-mcp选项2:从源代码安装
# Clone the repository
git clone https://github.com/johnferguson/verbalized-sampling-mcp.git
cd verbalized-sampling-mcp
# Install dependencies
npm install
# Configure environment variables (optional)
cp .env.example .env.development
# Edit .env.development with your Sentry DSN and other settings
# Build the project
npm run build
# Start the server
npm start哨兵监控
该服务器包括全面的Sentry监控,用于生产可观察性:
特性
- 性能监控:100%跟踪采样,以获得详细的性能见解
- 错误跟踪:MCP特定的错误分类和上下文
- 自定义指标:VS工具执行时间、成功率、置信度得分
- 健康监测:服务器正常运行时间、内存使用情况、连接跟踪
配置
服务器自动检测环境并相应地配置监控:
- 发展:具有本地错误处理功能的完整跟踪
- 生产:通过全面的错误跟踪优化性能
环境变量
# Required
SENTRY_DSN=https://your-dsn@sentry.io/project-id
SENTRY_ENVIRONMENT=development|production
# MCP-specific tags (automatically added to all events)
MCP_SERVER_NAME=verbalized-sampling-mcp
MCP_TRANSPORT_TYPE=stdio
MCP_TOOL_COUNT=4
MCP_CLIENT_INFO=vscode-extension@1.0.0监控仪表盘
查看实时指标和错误: 哨兵仪表板
有关详细的监控设置和程序,请参阅 可维护性.md.
用法
快速开始
# Install and start
npm install -g verbalized-sampling-mcp
verbalized-sampling-mcp
# In another terminal, test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js基本工作流程
- 生成VS提示:使用
vs_create_prompt获得优化的提示 - 发送给LLM:向您的LLM发出提示(通过任何界面)
- 过程响应:使用
vs_process_response解析并选择最佳的多样化输出
示例
示例1:克劳德的创意写作
// Generate VS prompt for creative writing
const promptResult = await mcp.callTool("vs_create_prompt", {
topic: "Write a short story about a robot learning to paint",
method: "creative_writing", // Optimized for creative tasks
model_name: "claude-sonnet-4-5"
});
// Send to Claude and get response
const claudeResponse = await callClaude(promptResult.content[0].text);
// Process for diverse selection
const storyResult = await mcp.callTool("vs_process_response", {
llm_output: claudeResponse,
tau: 0.08 // Model-specific threshold
});
console.log(storyResult.content[0].text); // Selected diverse story示例2:GPT-5的技术文档
// Get model-specific parameters first
const params = await mcp.callTool("vs_recommend_params", {
model_name: "gpt-5"
});
// Returns: {"k": 10, "tau": 0.05, "temperature": 1.1}
// Generate technical explanation prompt
const promptResult = await mcp.callTool("vs_create_prompt", {
topic: "Explain quantum computing in simple terms",
method: "cot", // Chain-of-thought for complex topics
model_name: "gpt-5"
});
// Process GPT's XML response
const result = await mcp.callTool("vs_process_response", {
llm_output: gptResponse,
tau: params.tau // Use research-optimized threshold
});示例3:对话生成
// Generate diverse dialogue responses
const promptResult = await mcp.callTool("vs_create_prompt", {
topic: "Write a conversation between a human and AI about climate change",
method: "dialogue", // Specialized for conversation
model_name: "gemini-2.5-pro"
});
// Get multiple dialogue options
const dialogueResult = await mcp.callTool("vs_process_response", {
llm_output: geminiResponse,
tau: 0.12 // Gemini-specific threshold
});示例4:批处理
// Process multiple responses efficiently
const responses = [
"Option A
0.15
",
"Option B
0.07
",
"Option C
0.03
"
];
for (const response of responses) {
const result = await mcp.callTool("vs_process_response", {
llm_output: response,
tau: 0.10 // Standard threshold
});
console.log(`Selected: ${result.content[0].text}`);
}MCP集成
克劳德桌面(推荐)
- 从npm安装:
npm install -g verbalized-sampling-mcp- 添加到克劳德桌面:
- 打开克劳德桌面→ 设置→ 开发者→ 编辑MCP服务器 - 添加新服务器:
{
"name": "verbalized-sampling-mcp",
"command": "verbalized-sampling-mcp",
"args": []
}- 重新启动克劳德桌面
其他MCP客户端
{
"mcpServers": {
"verbalized-sampling": {
"command": "node",
"args": ["/path/to/verbalized-sampling-mcp/dist/index.js"]
}
}
}环境变量(可选)
# Sentry monitoring (recommended for production)
export SENTRY_DSN="your-dsn@sentry.io/project-id"
export SENTRY_ENVIRONMENT="production"
# Or create .env file
echo "SENTRY_DSN=your-dsn@sentry.io/project-id" > .env
echo "SENTRY_ENVIRONMENT=production" >> .env可用工具
vs_create_prompt
生成针对特定模型和任务优化的语言化采样提示。
参数:
topic(string,必填):用户的查询或任务method(字符串,可选):VS策略-“标准”、“cot”或“多回合”model_name(字符串,可选):参数优化的目标模型名称
退货: 一个完整的VS提示字符串,准备发送给LLM。
vs_过程响应
解析LLM的XML响应,并使用尾部采样选择最多样化的选项。
参数:
llm_output(字符串,必填):LLM输出的原始文本包含 `` 标签tau(数字,可选):尾部采样的概率阈值(默认值:0.10)
退货: 所选的具有元数据的多样化响应。
vs_recommend_params
获取特定模型的推荐VS参数。
参数:
model_name(string,必填):要查找的模型名称
退货: JSON对象 k (样本计数), tau (阈值),以及 temperature 价值观。
MCP服务器详细信息
服务器配置
服务器运行在 stdio传输 并提供这些MCP工具:
| 工具 | 说明 | 参数 |
|---|---|---|
vs_create_prompt | 生成优化的VS提示 | topic (必填), method, model_name |
vs_process_response | 解析XML响应并选择不同的输出 | llm_output (必填), tau |
vs_recommend_params | 获取特定型号的VS参数 | model_name (必填) |
VS可用方法
| 方法 | 描述 | 最适合 |
|---|---|---|
standard | 基本VS提示 | 通用 |
cot | 思维链推理 | 复杂任务 |
multi-turn | 渐进式多样性建设 | 对话 |
research_standard | 官方研究格式 | 研究合规性 |
creative_writing | 为创意而优化 | 故事、诗歌 |
dialogue | 不同的语气/风格 | 对话 |
模型支撑
支持20多种参数优化的型号:
Anthropic:克劳德十四行诗4.5,俳句4.5,作品4.1 OpenAI:GPT-5、GPT-5迷你/纳米/专业、GPT-4.1系列、o4迷你\ 谷歌:双子座2.5 Pro/Flash,双子座1.5 Pro 元/开源:Calma 3.3,DeepSeek R1,QWEN3
发展
# Development mode
npm run dev
# Run tests
npm test
# Test Sentry integration
npm run sentry:test
# Lint and fix code
npm run lint:fix
# Format code
npm run format
# Type checking
npm run typecheck生产部署
环境设置
# Production environment
export NODE_ENV=production
export SENTRY_DSN="your-dsn@sentry.io/project-id"
export SENTRY_ENVIRONMENT=production
# Start with monitoring
npm startDocker部署
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist/
EXPOSE 3000
CMD ["npm", "start"]监控
该服务器包括全面的哨兵监控:
- 性能指标:100%跟踪采样
- 错误跟踪:MCP特定错误分类
- 自定义指标:VS工具执行时间、成功率
- 健康监测:服务器正常运行时间、内存使用情况、连接
在以下位置查看指标: 哨兵仪表板
测试哨兵集成
# Test error reporting
npm run sentry:test
# Start server with monitoring
npm run start
# Use MCP Inspector to test tools and verify metrics
npx @modelcontextprotocol/inspector node dist/index.js所有工具执行、错误和性能指标都会自动发送到具有MCP特定上下文的Sentry。
建筑
src/
├── tools/
│ ├── vs-tools.ts # Main MCP tool implementations
│ ├── prompts.ts # VS prompt templates and formatting
│ ├── sampler.ts # Response parsing and selection logic
│ └── constants.ts # Model-specific parameter mappings
└── index.ts # MCP server setup科学基础
该实现基于研究论文 “口头采样:如何缓解模式崩溃并解锁LLM多样性” Zhang等人(2025)的研究表明,VS在保持质量的同时将多样性提高了1.6-2.1x。
该方法的工作原理如下:
- 激发可能性:要求LLM用语言描述他们自己输出的概率估计
- 尾部取样:选择概率较低的回应,以鼓励多样性
- XML结构:使用结构化输出格式进行可靠解析
贡献
- 复刻仓库
- 创建要素分支
- 添加新功能的测试
- 确保所有测试通过
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
