EVAL Engine

An MCP server for Kaito Yaps attention scores

Kaito Yaps is an open protocol for tracking attention on X. Its API returns a score per account, broken down by time window. kaito-yaps-mcp is a small, unofficial Model Context Protocol (MCP) server that lets an MCP client such as Claude Desktop or Cursor look up those scores during a conversation.

What it exposes

The server registers a single tool, get-yaps-score. It accepts either a numeric X user_id or a username without the @. Arguments are validated with a zod schema that requires at least one of the two:

1const GetYapsScoreArgumentsSchema = z.object({
2 user_id: z.string().optional(),
3 username: z.string().optional(),
4}).refine(d => d.user_id || d.username, {
5 message: "Either user_id or username must be provided",
6});

The tool calls the Yaps API and returns the JSON response as text. The response includes yaps_all (all-time) and windowed scores for the last 24 hours, 48 hours, 7 days, 30 days, 3 months, 6 months and 12 months. In practice you can ask a client something like "Get the Yaps score for @VitalikButerin" and it will call the tool and read the numbers back.

Error handling

Validation errors from zod are turned into a readable message listing each bad field. HTTP errors from the API are rethrown as Kaito Yaps API error: [code] message, using the error code and message from the response body when they are present. Any unknown tool name is rejected.

Setup

The server is TypeScript built on @modelcontextprotocol/sdk and runs over stdio. After npm i and npm run build, you point your client at the built file:

1{
2 "mcpServers": {
3 "kaito-yaps": {
4 "command": "node",
5 "args": ["/PATH_TO_FOLDER/kaito-yaps-mcp/build/index.js"]
6 }
7 }
8}

For Cursor, the same node .../build/index.js command goes into the MCP settings. The README notes the API's default rate limit of 100 calls every 5 minutes.

Credits and scope

This is not an official Kaito project; it wraps their public Yaps API as documented in the Kaito docs. The repository started as a fork of an earlier Chromia MCP server, and we reworked it into a single-purpose Yaps tool. It is MIT licensed.

We built it as a small, complete example of the MCP pattern we use elsewhere: one well-described tool, strict input validation, and errors that tell the model what went wrong so it can retry with better arguments.