变形器MCP
ShapeShifter-MCP是一个MCP(模型上下文协议)服务器,它将困惑API的响应转换为所选角色的风格。它允许您通过标准化的API与各种人工智能角色进行交互。
特性
- 使用困惑AI的基于字符的响应
- 支持多个虚构角色(里克、尤达、夏洛克、苏格拉底)
- 具有特定于模型的超时的多个困惑模型
- MCP兼容接口,便于与MCP客户端集成
- 可定制的字符提示
- 速率限制和重试处理
- 在单独的配置文件中轻松配置
先决条件
- Node.js(>=14)
- npm或纱线
- 困惑API键
环境变量
创建一个 .env 包含以下变量的文件:
PERPLEXITY_API_KEY=your_api_key_here
PORT=3000 # Optional (default: 3000)
PERPLEXITY_MODEL=sonar # Optional (default: sonar)
PERPLEXITY_TIMEOUT_MS=30000 # Optional (default: model-specific)
PERPLEXITY_MAX_RETRIES=3 # Optional (default: 3)可用型号
| 型号 | 默认超时 | 功能 |
|---|---|---|
| 声纳深度研究 | 30分钟 | 相关问题,结构化输出 |
| 声纳推理专业版 | 5分钟 | 图像、相关问题、搜索域过滤器、结构化输出 |
| 声纳推理 | 5分钟 | 图像、相关问题、搜索域过滤器、结构化输出 |
| sonar pro | 5分钟 | 图像、相关问题、搜索域过滤器、结构化输出 |
| 声纳 | 5分钟 | 图像、相关问题、搜索域过滤器、结构化输出 |
| r1-1776 | 10分钟 | 结构化输出 |
设置
- 安装依赖项:
npm install
# or with yarn
yarn install- 复制示例环境文件并设置您的困惑API密钥:
cp .env.example .env
# Edit the .env file with your API key- 构建项目:
npm run build
# or with yarn
yarn build- 以开发模式启动:
npm run dev
# or with yarn
yarn devAPI终点
POST/mcp
接受MCP格式请求的主MCP端点。
MCP请求示例:
{
"jsonrpc": "2.0",
"method": "mcp.prompt",
"params": {
"name": "ask",
"params": {
"question": "What is the meaning of life?",
"character": "rick"
}
},
"id": "1"
}模型选择工具调用示例:
{
"jsonrpc": "2.0",
"method": "mcp.tool",
"params": {
"name": "ask-perplexity",
"params": {
"question": "What is quantum physics?",
"character": "yoda",
"model": "sonar-deep-research"
}
},
"id": "2"
}可用字符
rick里克·桑切斯来自《瑞克与莫蒂》yoda:《星球大战》中的尤达sherlock:夏洛克·福尔摩斯socrates希腊哲学家苏格拉底
配置
该应用程序使用单独的配置文件以便于维护:
- 角色:在中添加新字符
src/config/characterConfig.ts - 模型:在中配置困惑模型
src/config/modelConfig.ts - 服务器:常规服务器设置位于
src/config.ts
发展
添加新角色
- 在中创建系统提示文件
src/prompts/[character]-system-prompt.ts - 将角色添加到
src/config/characterConfig.ts:
// Example adding a new character
export const CHARACTERS: Record = {
// Existing characters...
// New character
batman: {
name: "Batman",
promptFn: getBatmanSystemPrompt,
description: "Dark knight detective from Gotham City",
},
};- 更新
CharacterKey使用新字符名称键入
添加新模型
要添加新的困惑模型,请编辑 src/config/modelConfig.ts:
// Example adding a new model
export const PERPLEXITY_MODELS = {
// Existing models...
// New model
"new-model-name": {
timeoutMs: 15 * 60 * 1000, // 15 minutes
capabilities: "Some capabilities",
description: "Description of the new model",
},
};许可证
麻省理工学院
