{
  "data": {
    "tool": {
      "category": "embeddings",
      "endpoint": "https://aiwave.elopstudio.com/api/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/elopstudio-ai-wave.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/elopstudio-ai-wave.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/elopstudio-ai-wave.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 1321,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 11
          },
          "findings": [
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_model",
              "message": "its one parameter, id, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_model_changes",
              "message": "1 parameter without a description: type",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "search_models",
              "message": "1 parameter without a description: minContext",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "compare_models",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "estimate_cost",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "find_replacement",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"find\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get_model",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get_price_history",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "get_today",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"get\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "list_model_changes",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "search_models",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
            },
            {
              "rule": "TC24",
              "severity": "note",
              "message": "8 of 8 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:22:41Z",
        "count": 8,
        "note": "answered without the initialize handshake",
        "schemaTokens": 1321,
        "status": "ok",
        "tools": [
          {
            "name": "list_model_changes",
            "description": "Changes across AI models: new releases, price changes, API changes and deprecations. Normalized from vendor release notes, Hugging Face, the OpenRouter catalog, GitHub and the LiteLLM price map, deduplicated per model, each marked official or pending review. Poll with `since` (unix seconds) and feed the returned `latest` back next time.",
            "inputSchema": {
              "properties": {
                "limit": {
                  "description": "1-100, default 20",
                  "type": "number"
                },
                "model": {
                  "description": "Vendor slug, e.g. claude",
                  "type": "string"
                },
                "since": {
                  "description": "Unix seconds. Only changes detected after this, oldest first.",
                  "type": "number"
                },
                "type": {
                  "enum": [
                    "new_model",
                    "price_change",
                    "api_change",
                    "open_source_surge",
                    "deprecation"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          {
            "name": "get_model",
            "description": "Pricing, context length and catalog status for one model. Accepts an OpenRouter id (anthropic/claude-opus-5) or a Hugging Face repo id.",
            "inputSchema": {
              "properties": {
                "id": {
                  "type": "string"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get_price_history",
            "description": "Price history for one model: when the price changed and to what. The public catalog only exposes the current price, so this answers 'was this cheaper last month?'. Each entry holds until the next one. History starts when AI Wave began recording, not when the model launched.",
            "inputSchema": {
              "properties": {
                "id": {
                  "description": "OpenRouter id or Hugging Face repo id",
                  "type": "string"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "search_models",
            "description": "Shortlist models by budget, context and capability, ranked by measured performance. Use this to answer 'which model should I use for X': it returns benchmark scores alongside price so the trade-off is visible in one call. Sort by a subject (math, coding, science, reading) to find a model good at one thing.",
            "inputSchema": {
              "properties": {
                "accepts": {
                  "description": "What the model must be able to take in, e.g. image for vision tasks.",
                  "enum": [
                    "text",
                    "image",
                    "audio",
                    "video",
                    "file"
                  ],
                  "type": "string"
                },
                "limit": {
                  "description": "1-50, default 10",
                  "type": "number"
                },
                "maxInputPrice": {
                  "description": "USD per 1M input tokens",
                  "type": "number"
                },
                "minContext": {
                  "type": "number"
                },
                "minIntelligence": {
                  "description": "Lowest acceptable overall index. Leaders sit near 53; the median is 16.",
                  "type": "number"
                },
                "mode": {
                  "description": "What the model does. Non-chat modes are priced in other units: check price.unit.",
                  "enum": [
                    "chat",
                    "embedding",
                    "rerank",
                    "audio_transcription",
                    "audio_speech",
                    "video_generation"
                  ],
                  "type": "string"
                },
                "outputs": {
                  "description": "What the model produces. A model that accepts video but writes text is 'text', not 'video': filter on what you need made, not what it can read.",
                  "enum": [
                    "text",
                    "image",
                    "audio",
                    "video"
                  ],
                  "type": "string"
                },
                "sortBy": {
                  "description": "Ranking basis. Default 'intelligence' (overall). 'buzz' is popularity, not skill.",
                  "enum": [
                    "intelligence",
                    "korean",
                    "buzz",
                    "science",
                    "math",
                    "coding",
                    "reading",
                    "knowledge",
                    "instruction",
                    "hardReasoning"
                  ],
                  "type": "string"
                },
                "vendor": {
                  "description": "OpenRouter namespace, e.g. anthropic",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          {
            "name": "compare_models",
            "description": "Put two or more models side by side: price, context, benchmark scores per subject, and what each costs per month at a given volume. Use this instead of calling get_model repeatedly: it aligns the fields and marks which subjects a model has not been tested on, so a missing score is not read as a low one.",
            "inputSchema": {
              "properties": {
                "ids": {
                  "description": "2-6 OpenRouter ids, e.g. ['anthropic/claude-opus-5','openai/gpt-5.2']",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "monthlyMillionTokens": {
                  "description": "Volume for the cost estimate. Default 10 (10M tokens a month).",
                  "type": "number"
                }
              },
              "required": [
                "ids"
              ],
              "type": "object"
            }
          },
          {
            "name": "estimate_cost",
            "description": "What one model costs per month at a given token volume, in USD and KRW. Token prices are per million and hard to reason about directly; this turns them into a monthly bill. Input and output are mixed 75/25 unless you pass your own split.",
            "inputSchema": {
              "properties": {
                "id": {
                  "description": "OpenRouter id or Hugging Face repo id",
                  "type": "string"
                },
                "inputShare": {
                  "description": "0-1, share of tokens that are input. Default 0.75",
                  "type": "number"
                },
                "monthlyMillionTokens": {
                  "description": "Default 10",
                  "type": "number"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          },
          {
            "name": "get_today",
            "description": "Today in one call: the top 5 models, which ones climbed, whose pricing changed in the last 24h, and what was newly listed in the last 7 days. Use this instead of paging list_model_changes and re-deriving the summary: price changes are already collapsed to one per model, with the raw count kept.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            }
          },
          {
            "name": "find_replacement",
            "description": "What to switch to when a model is gone or you need a fallback. Ranked by closeness in measured performance, not by vendor or price: what you usually need to preserve first is the quality of the output. Candidates whose context window is less than half the original are excluded. Returns the score, price and context deltas so you can judge; we do not pick for you.",
            "inputSchema": {
              "properties": {
                "id": {
                  "description": "OpenRouter id or Hugging Face repo id",
                  "type": "string"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            }
          }
        ]
      },
      "name": "AI Wave",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@elopstudio/ai-wave-mcp",
          "version": "1.0.3",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/elopstudio-ai-wave.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 56
      },
      "registryName": "com.elopstudio.aiwave/ai-wave",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://aiwave.elopstudio.com/api/mcp"
        }
      ],
      "repository": "https://github.com/elopstudio/ai-wave-mcp",
      "reviewed": false,
      "slug": "elopstudio-ai-wave",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.elopstudio.aiwave/ai-wave",
      "summary": "AI model releases, price changes and deprecations in one feed: chat, embedding, speech, video.",
      "updatedAt": "2026-09-15T01:24:21Z",
      "url": "https://www.anchorterminal.com/tools/elopstudio-ai-wave",
      "vendor": "aiwave.elopstudio.com",
      "vendorUrl": "https://aiwave.elopstudio.com/api-docs",
      "version": "1.0.3",
      "websiteUrl": "https://aiwave.elopstudio.com/api-docs",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/elopstudio-ai-wave",
    "json": "https://www.anchorterminal.com/tools/elopstudio-ai-wave.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/elopstudio-ai-wave.md",
    "slim": "https://www.anchorterminal.com/tools/elopstudio-ai-wave.min.md"
  },
  "markdown": "# AI Wave\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by aiwave.elopstudio.com (https://aiwave.elopstudio.com/api-docs)\n- Category: Embeddings \u0026 rerankers (https://www.anchorterminal.com/categories/embeddings.md)\n- Listed because: It's published in the registry under aiwave.elopstudio.com, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: AI model releases, price changes and deprecations in one feed: chat, embedding, speech, video.\n\n## Facts\n\n- MCP registry: `com.elopstudio.aiwave/ai-wave` 1.0.3\n- Endpoint: https://aiwave.elopstudio.com/api/mcp (streamable HTTP)\n- Package: npm `@elopstudio/ai-wave-mcp` (stdio)\n- Source: https://github.com/elopstudio/ai-wave-mcp\n- Website: https://aiwave.elopstudio.com/api-docs\n- npm downloads a week: 56\n- GitHub stars: 0\n- Registry entry updated: 2026-09-15\n\n## Tools\n\n- Tools it lists (8, about 1,321 tokens of context, `tools/list` without credentials, checked 2026-10-04 22:22 UTC):\n  - `list_model_changes`: Changes across AI models: new releases, price changes, API changes and deprecations. Normalized from vendor release notes, Hugging Face, the OpenRouter…\n  - `get_model`: Pricing, context length and catalog status for one model. Accepts an OpenRouter id (anthropic/claude-opus-5) or a Hugging Face repo id.\n  - `get_price_history`: Price history for one model: when the price changed and to what. The public catalog only exposes the current price, so this answers 'was this cheaper last…\n  - `search_models`: Shortlist models by budget, context and capability, ranked by measured performance. Use this to answer 'which model should I use for X': it returns benchmark…\n  - `compare_models`: Put two or more models side by side: price, context, benchmark scores per subject, and what each costs per month at a given volume. Use this instead of calling…\n  - `estimate_cost`: What one model costs per month at a given token volume, in USD and KRW. Token prices are per million and hard to reason about directly; this turns them into a…\n  - `get_today`: Today in one call: the top 5 models, which ones climbed, whose pricing changed in the last 24h, and what was newly listed in the last 7 days. Use this instead…\n  - `find_replacement`: What to switch to when a model is gone or you need a fallback. Ranked by closeness in measured performance, not by vendor or price: what you usually need to…\n- How its tools read to an agent (0 errors, 11 warnings, 1 note, about 1,321 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC11 get_model: its one parameter, id, has no description\n  - warn TC11 list_model_changes: 1 parameter without a description: type\n  - warn TC11 search_models: 1 parameter without a description: minContext\n  - warn TC16 compare_models: no readOnlyHint or destructiveHint\n  - warn TC16 estimate_cost: no readOnlyHint or destructiveHint\n  - warn TC16 find_replacement: no readOnlyHint or destructiveHint\n  - warn TC16 get_model: no readOnlyHint or destructiveHint\n  - warn TC16 get_price_history: no readOnlyHint or destructiveHint\n  - warn TC16 get_today: no readOnlyHint or destructiveHint\n  - warn TC16 list_model_changes: no readOnlyHint or destructiveHint\n  - warn TC16 search_models: no readOnlyHint or destructiveHint\n  - note TC24 server: 8 of 8 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/elopstudio-ai-wave.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "AI Wave",
        "url": ""
      }
    ],
    "description": "AI Wave, an MCP server by aiwave.elopstudio.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. AI model releases, price changes and deprecations in one feed: chat, embedding, speech, video.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "AI Wave",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/elopstudio-ai-wave",
    "published": "",
    "section": "indexed",
    "title": "AI Wave: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/elopstudio-ai-wave"
  },
  "tokens": {
    "markdown": 1100,
    "slim": 1030
  },
  "version": 1
}
