情感分析适配器

一个将Sentiment402 API暴露为MCP工具的轻量级适配器,支持市场情感数据获取和自动支付处理。

  • by kytona
  • TypeScript
  • 本地部署
  • 更新于

使用说明

Sentiment402 MCP适配器(标准输入)

一个瘦MCP服务器,将Sentiment402快照端点作为MCP工具公开。它通过HTTPS调用公共Sentiment402 API,并在API响应时中继x402付款要求 402 Payment Required.

此适配器是有意无状态的,不包含数据库凭据或管理标头。在本地运行或作为公共MCP工具打包是安全的。

工具表面

工具 HTTP端点 描述
get_global_snapshot GET /v1/snapshot/global 全球市场情绪快照
get_crypto_pulse GET /v1/snapshot/crypto 加密货币市场情绪波动
get_tradfi_pulse GET /v1/snapshot/tradfi TradFi市场情绪波动
get_asset_view GET /v1/snapshot/asset/:symbol 特定资产的最新脉搏

常见输入

所有工具都接受相同的可选查询输入(和 get_asset_view 另外需要a symbol).

  • format: full 或 compact_trading
  • fields:逗号分隔的满列表(仅在以下情况下有意义 format=compact_trading)
  • symbol:必需 get_asset_view

工具参数示例:

{
  "format": "compact_trading",
  "fields": "headline,trend,confidence"
}

x402付款处理

当Sentiment402 API响应时 402,适配器返回一个结构化的 PAYMENT_REQUIRED 有效载荷。如果 SENTIMENT402_X402_PRIVATE_KEY 配置后,它将尝试使用API返回的选项自动进行x402付款。如果付款无法完成 PAYMENT_REQUIRED 有效载荷被返回。

示例有效载荷(截断):

{
  "error": "PAYMENT_REQUIRED",
  "x402Version": 1,
  "resource": "https://sentiment-api.kytona.com/v1/snapshot/global",
  "accepts": [
    {
      "scheme": "exact",
      "network": "base",
      "asset": "USDC",
      "amount": "100000",
      "payTo": "0x..."
    }
  ],
  "rawHeader": "..."
}

缓存

使用小型内存缓存来减少重复请求。

  • 默认TTL: 60000 毫秒
  • 缓存密钥: {tool}:{path}?{query}
  • 仅 2xx JSON响应已缓存
  • 402 响应永远不会被缓存

配置

默认值:

  • API基础URL: https://sentiment-api.kytona.com
  • API版本: v1

环境变量:

  • SENTIMENT402_API_BASE_URL (可选)--默认值 https://sentiment-api.kytona.com
  • SENTIMENT402_API_VERSION (可选)-- v1 (默认值 v1)
  • SENTIMENT402_CACHE_TTL_MS (可选)--缓存TTL(毫秒)(默认值 60000)
  • SENTIMENT402_USER_AGENT (可选)--默认值 sentiment402-mcp/0.1.0
  • SENTIMENT402_X402_PRIVATE_KEY (可选)——用于自动支付x402请求的EVM私钥
  • SENTIMENT402_X402_MAX_PAYMENT (可选)--以基本单位表示的最高付款额(默认值 100000,即0.10美元)

Sentiment402 API不需要API密钥。只有当你想自动支付时,才需要私钥 402 响应。

在本地运行

构建和启动:

pnpm install
pnpm build
pnpm start

您也可以直接在开发模式下运行:

pnpm dev

指向localhost:

SENTIMENT402_API_BASE_URL="http://localhost:8080" pnpm dev

MCP主机配置示例

stdio MCP主机配置示例:

{
  "command": "node",
  "args": ["/path/to/sentiment402/mcp/dist/index.js"],
  "env": {
    "SENTIMENT402_API_BASE_URL": "https://sentiment-api.kytona.com",
    "SENTIMENT402_API_VERSION": "v1"
  }
}

客户端设置说明

克劳德桌面

Claude Desktop通过stdio配置支持MCP服务器。

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

选项1:从GitHub运行(推荐)

{
  "mcpServers": {
    "sentiment402": {
      "command": "npx",
      "args": ["-y", "github:kytona/mcp"],
      "env": {
        "SENTIMENT402_API_VERSION": "v1",
        "SENTIMENT402_X402_PRIVATE_KEY": "your_evm_private_key_here"
      }
    }
  }
}

这会自动从GitHub下载并运行最新版本。

选项2:从本地克隆运行

  1. 克隆和构建:

    git clone https://github.com/kytona/mcp.git
    cd mcp
    pnpm install
    pnpm build
    
  2. 配置Claude:

    {
      "mcpServers": {
        "sentiment402": {
          "command": "node",
          "args": ["/absolute/path/to/mcp/dist/index.js"],
         "env": {
           "SENTIMENT402_API_VERSION": "v1",
           "SENTIMENT402_X402_PRIVATE_KEY": "your_evm_private_key_here"
         }
        }
      }
    }
    
  3. 重新启动Claude Desktop并查找🔌 图标以查看可用工具。

资源:

ChatGPT桌面

ChatGPT通过开发者模式支持MCP(需要ChatGPT Plus)。

设置步骤

  1. 启用开发人员模式:

    • 打开ChatGPT→ 设置
    • 首选 应用程序和连接器 → 高级设置
    • 启用 开发人员模式
  2. 添加MCP服务器(NPX-推荐):

    • 在 应用程序和连接器,单击 创建
    • 输入:
      • 名字: Sentiment402
      • 命令: npx
      • 参数: -y github:kytona/mcp
      • 环境变量:
        SENTIMENT402_API_VERSION=v1
        SENTIMENT402_X402_PRIVATE_KEY=your_evm_private_key_here
        
    • 检查 我信任这个应用程序
    • 点击 创建
  3. 在聊天中使用:

    • 点击 + 在提示字段中
    • 首选 更多 → 开发人员模式
    • 启用Sentiment402连接器

使用本地克隆

  1. 如上所述为Claude克隆和构建
  2. 在ChatGPT开发者模式下,配置:
    • 命令: node
    • 参数: /absolute/path/to/mcp/dist/index.js
    • 环境变量:与上述相同

资源:

在云服务器上运行

要远程运行MCP服务器并从Claude/ChatGPT连接:

1.部署到云端

# On your cloud server (AWS, DigitalOcean, etc.)
git clone https://github.com/kytona/mcp.git
cd mcp
pnpm install
pnpm build

# Run with PM2 for persistence
npm install -g pm2
pm2 start dist/index.js --name sentiment402-mcp
pm2 save
pm2 startup

2.通过ngrok曝光(仅限开发)

# Install ngrok: https://ngrok.com/download
ngrok tcp 8000

# Note the forwarding address: tcp://0.tcp.ngrok.io:12345

3.配置客户端

对于Claude或ChatGPT,更新命令以通过TCP连接:

{
  "command": "node",
  "args": ["-e", "const net = require('net'); const client = net.connect({host: '0.tcp.ngrok.io', port: 12345}); process.stdin.pipe(client); client.pipe(process.stdout);"]
}

⚠️ 安全警告:ngrok公开您的服务器。生产时,使用:

  • VPN(Tailscale、WireGuard)
  • SSH隧道
  • 适当的身份验证中间件

资源:

其他MCP客户端(Cline等)

对于其他兼容MCP的客户端,请使用类似的stdio配置:

{
  "mcpServers": {
    "sentiment402": {
      "command": "npx",
      "args": ["-y", "github:kytona/mcp"],
      "env": {
        "SENTIMENT402_API_VERSION": "v1"
      }
    }
  }
}

有关配置文件的确切位置,请参阅客户的文档。

测试脚本

该仓库包含一个stdio测试运行器,它调用一个工具并打印响应。

pnpm build
pnpm test:mcp

指向localhost:

SENTIMENT402_API_BASE_URL="http://localhost:8080" pnpm test:mcp

可选覆盖:

  • SENTIMENT402_MCP_TOOL (默认值 get_global_snapshot)
  • SENTIMENT402_MCP_TOOL_ARGS (JSON字符串)
  • SENTIMENT402_MCP_SERVER_CMD / SENTIMENT402_MCP_SERVER_ARGS 自定义服务器进程

许可证

MIT。看 LICENSE.

安全注意事项

  • 适配器只调用公共HTTPS API,从不接触内部数据库。
  • MCP响应主体仅包含API响应或 PAYMENT_REQUIRED 有效载荷。