🔌 MCP Servers

YAPS Influence Score Server

Provide tokenized attention scores and credibility metrics for X/Twitter accounts to enhance LLMs with influencer trust data. Compare influencer scores, access daily leaderboards, and benefit from bui

❤️ 0
⬇️ 486
👁 1
Share

Description

YAPS MCP Server

An MCP (Model Context Protocol) server that wraps Kaito's YAPS API to provide tokenized attention scores for X/Twitter accounts. This server enables LLMs to query credibility and influence metrics for any X account, with built-in caching and rate limiting.

Features

  • 🔍 Influencer Trust Score: Fetch YAPS scores for any X/Twitter account with caching
  • 🔄 Comparison Tool: Compare the credibility of two influencers with natural language summaries
  • 📊 Daily Leaderboard: Top-10 crypto influencers automatically refreshed daily
  • 🚦 Rate Limiting: Graceful handling of YAPS API's 100 calls / 5 min limit
  • 💾 Redis Caching: 10-minute TTL for scores, 24-hour TTL for leaderboards

Getting Started

Prerequisites

  • Node.js 18 or higher
  • Redis server

Installation

  1. Clone the repository
git clone https://github.com/yourusername/yap-mcp.git
cd yap-mcp
  1. Install dependencies
npm install
  1. Create a .env file based on the following template:
# YAPS API (no API key needed - using public API with rate limits)
YAPS_API_ENDPOINT=https://api.kaito.ai/api/v1/yaps

# Redis cache
REDIS_URI=redis://localhost:6379

# Server
PORT=3000
NODE_ENV=development

# YAPS cache TTL in seconds
YAPS_CACHE_TTL=600  # 10 minutes

# Leaderboard settings
LEADERBOARD_CACHE_TTL=86400  # 24 hours
  1. Build the project
npm run build
  1. Start the server
npm start

For integration with LLM providers, use the stdio transport:

npm start -- --stdio

MCP Resources and Tools

Resources

  • yaps-score - YAPS score for a Twitter user
    • Schema: yaps-score://{username}

Tools

  • get_yaps_score - Get YAPS score and summary for a Twitter user

    • Input: { username: string }
    • Output: JSON object with score and natural language summary
  • compare_scores - Compare YAPS scores between two Twitter users

    • Input: { username_a: string, username_b: string }
    • Output: JSON comparison with deltas and natural language verdict
  • leaderboard_today - Get today's top-10 YAPS leaderboard

    • Input: {}
    • Output: Array of top 10 accounts by 24h YAPS score

Using with OpenAI GPT

Example of using the YAPS MCP server with OpenAI:

import OpenAI from 'openai';
import { spawn } from 'child_process';

const openai = new OpenAI({ apiKey: 'your-api-key' });

// Start the MCP server as a child process
const mcpProcess = spawn('node', ['dist/index.js', '--stdio'], {
  stdio: ['pipe', 'pipe', process.stderr]
});

// Example function to call GPT with tools
async function askGptWithTools(question) {
  try {
    const response = await openai.chat.completions.create({
      model: 'gpt-4-turbo',
      messages: [{ role: 'user', content: question }],
      tools: [
        {
          type: 'function',
          function: {
            name: 'get_yaps_score',
            description: 'Get YAPS tokenized attention score for an X/Twitter account',
            parameters: {
              type: 'object',
              properties: {
                username: {
                  type: 'string',
                  description: 'Twitter username (with or without @)'
                }
              },
              required: ['username']
            }
          }
        },
        // Additional tools would be defined here
      ],
      tool_choice: 'auto'
    });

    console.log(response.choices[0].message);
    
    // Process tool calls if any
    if (response.choices[0].message.tool_calls) {
      // Implementation for handling tool calls would go here
    }

    return response;
  } catch (error) {
    console.error('Error calling GPT:', error);
    throw error;
  }
}

// Example usage
askGptWithTools('What is the YAPS score for @VitalikButerin?');

Performance and Availability

  • P95 tool latency < 300 ms (cache hit) / < 2 s (cache miss)
  • 99% monthly availability with stateless containers
  • Prometheus metrics for monitoring calls and errors

API Rate Limits

The YAPS API is available as an open source API with the following limitations:

  • Default rate limit: 100 calls every 5 minutes
  • This MCP server implements caching and rate limiting to respect these constraints

Technical Details

  • Built with TypeScript and Node.js
  • Uses MCP SDK version 1.11.3
  • Express.js for HTTP handling
  • Redis for caching and rate limiting

License

MIT

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs