Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YAPS MCP Servercompare the credibility of @VitalikButerin and @cz_binance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone the repository
git clone https://github.com/yourusername/yap-mcp.git
cd yap-mcpInstall dependencies
npm installCreate a
.envfile 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 hoursBuild the project
npm run buildStart the server
npm startFor integration with LLM providers, use the stdio transport:
npm start -- --stdioMCP Resources and Tools
Resources
yaps-score- YAPS score for a Twitter userSchema:
yaps-score://{username}
Tools
get_yaps_score- Get YAPS score and summary for a Twitter userInput:
{ username: string }Output: JSON object with score and natural language summary
compare_scores- Compare YAPS scores between two Twitter usersInput:
{ username_a: string, username_b: string }Output: JSON comparison with deltas and natural language verdict
leaderboard_today- Get today's top-10 YAPS leaderboardInput:
{}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