Skip to main content
Glama
MIKO MCP Server

MIKO MCP Server

MIKO

@projectmiko/mcp-server

npm version license: MIT node

MIKO exposed as a Model Context Protocol server. Any MCP-aware client (Claude Desktop, Claude Code, Cursor, OpenAI Agents, Gemini, or a custom runtime) can call MIKO's capabilities as tools. Each tool forwards to the MIKO REST API, which enforces auth, tier, and quota.

Two transports, one package:

  • stdio (default) — the client runs the server locally via npx.

  • Streamable HTTP — a hosted endpoint (https://mcp.mikoprotocol.com/mcp) for clients that connect over the network.

Quick start

npx -y @projectmiko/mcp-server

Or point your client at the hosted endpoint — no install at all:

https://mcp.mikoprotocol.com/mcp

Both need a wallet-signed JWT (see Auth).

Related MCP server: telemost-mcp-server

Tools

Tool

REST endpoint

Min tier

miko.factcheck

POST /v1/factcheck

Pro

miko.persona

POST /v1/persona

Pro

miko.narrative

POST /v1/narrative

Pro

miko.watchlist

GET /v1/watchlist

Pro

miko.insights

POST /v1/insights

Holder

miko.narratives_trending

GET /v1/narratives/trending

Holder

Tiers are set by the wallet's $MIKO holdings: Holder (≥ $100), Pro (≥ $1,000), Whale (≥ $2,000). A tool admits its listed tier and above; below it the call returns 403 tier_insufficient. Higher tiers also get larger daily quotas.

Each tool result carries _meta with the call's tier, quota_remaining, cache_status, and cache_age (from the REST response headers).

miko.narrative takes the token by address:

{ "token_address": "<token address>" }

The former mint_address argument remains accepted as a deprecated alias. Do not provide both names with different values.

Auth

Every call needs a wallet-signed JWT. Obtain one either from the dashboard (https://api.mikoprotocol.com/dashboard — connect, sign, copy the token) or via the REST auth flow:

  1. POST /auth/nonce with { "wallet": "<wallet address>" } → { nonce }.

  2. Sign the nonce with the EVM wallet holding your $MIKO on Robinhood Chain — a standard EIP-191 personal signature (MetaMask's personal_sign).

  3. POST /auth/verify with { wallet, signature, nonce } → { jwt, tier, expires_at, quota }.

The JWT is valid ~24h. Supply it to the server as described below.

Client config

stdio (local, via npx)

{
  "mcpServers": {
    "miko": {
      "command": "npx",
      "args": ["-y", "@projectmiko/mcp-server"],
      "env": { "MIKO_JWT": "<your_wallet_jwt>" }
    }
  }
}

Claude Desktop config path: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows).

Streamable HTTP (hosted)

{
  "mcpServers": {
    "miko": {
      "type": "http",
      "url": "https://mcp.mikoprotocol.com/mcp",
      "headers": { "Authorization": "Bearer <your_wallet_jwt>" }
    }
  }
}

Environment variables

Var

Default

Purpose

MIKO_JWT

—

wallet-signed JWT (stdio; for HTTP it comes from the request header)

MIKO_API_BASE

https://api.mikoprotocol.com

REST API base URL

MIKO_API_TIMEOUT_MS

60000

upstream request timeout

MIKO_MCP_HTTP

—

set 1 (or pass --http) to run the Streamable HTTP transport

MIKO_MCP_HTTP_HOST

127.0.0.1

HTTP bind host

MIKO_MCP_HTTP_PORT

8091

HTTP bind port

MIKO_MCP_ALLOWED_ORIGINS

—

comma-separated Origin allowlist (browser callers)

Develop / run

npm install
npm run check          # syntax check
npm test               # smoke tests (no network)

MIKO_JWT=<jwt> node src/index.js          # stdio
node src/index.js --http                   # Streamable HTTP on 127.0.0.1:8091

Self-hosting the HTTP endpoint

deploy/miko-mcp.service.example (systemd) runs the HTTP transport bound to localhost; deploy/nginx-mcp.conf.example terminates TLS and reverse-proxies /mcp, forwarding the Authorization header and disabling buffering for SSE. Point MIKO_API_BASE at your REST API endpoint.

MIKO Protocol

Website · Docs · Insight Dashboard · REST API reference · Open model — Hugging Face · Ollama · X

Available Tools

6 tools
miko.factcheckMIKO Fact-checkA
Read-only

Verify a factual claim through MIKO's multi-provider fact-check.

Inputs: claim (required).

miko.insightsMIKO InsightsB
Read-only

Get MIKO's insights on a token symbol, token address, or narrative topic.

Inputs: query (required).

miko.narrativeMIKO Token NarrativeA
Read-only

Get MIKO's narrative read of a token address: what the token is doing on-chain right now, as a one-paragraph interpretation plus concrete observations. Use token_address; mint_address remains a deprecated compatibility alias.

Inputs: mint_address, token_address.

miko.personaMIKO PersonaA
Read-only

Generate a short response in Miko's voice. Pass the content to react to or the topic to write about; the persona is built into the model. The call blocks until the text is ready; the first call after idle can take several minutes while the model starts.

Inputs: prompt (required).

miko.watchlistMIKO WatchlistA
Read-only

Tokens currently on the watchlist, each with a plain-language summary.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool serves a distinct purpose: fact-checking claims, generating persona responses, reading token narratives, providing insights, listing trending narratives, and managing watchlists. No functional overlap.

    Naming Consistency5/5

    All tool names follow the consistent pattern 'miko.<action_noun>', using lowercase with a period separator, which is predictable and easy to understand.

    Tool Count5/5

    With 6 tools, the server is well-scoped for a specialized crypto analysis agent. Each tool contributes meaningfully to the domain without being excessive or insufficient.

    Completeness4/5

    Core operations for token analysis (narrative, insights, trending, watchlist) and fact-checking are covered. Minor gaps include lack of watchlist management (add/remove) and detailed token metrics, but these are not essential for the intended use.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers