AI Model Watch

io.github.markksantos由 GitHub 账号 markksantos 发布v1.2.0更新于 Nov 1, 2026

List the models each AI provider's API serves and see which are new since the last check.

发布方自己的服务:model.tools — Zero-Auth Agent Utilities

已验证STDIO仅桌面开发者工具AI 与机器学习

概览

AI 生成的概览

本地 MCP 服务器,让助手列出各 AI 供应商 API 提供的模型,并查看自上次检查以来新增的模型 ID。

可以做什么
  • 列出指定供应商当前提供的模型 ID,可按子串过滤
  • 对比已保存的状态文件,报告各供应商自上次检查以来新增的模型 ID
  • 覆盖 OpenRouter、OpenAI、Anthropic、Google Gemini、Mistral、xAI 和 DeepSeek,未设置密钥的供应商会被跳过
适用场景
适合让助手直接回答某个供应商的 API 列表中是否出现了新模型,或在对话中比较多家供应商当前的模型目录。
运行要求
以 stdio 本地运行,通过 --mcp 参数启动,可用 npx、Homebrew、Claude Desktop 安装包或 JSON 客户端配置。npx 方式需要 Node 18+。OpenRouter 无需密钥;其他供应商需在环境变量中提供密钥(OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY 或 GOOGLE_API_KEY、MISTRAL_API_KEY、XAI_API_KEY、DEEPSEEK_API_KEY)。需要访问各供应商 API 的网络。
安装前请注意
供应商 API 密钥从环境变量读取,只发送给对应供应商;Claude Code 插件会把环境中的密钥透传给服务器。它会写入状态文件(默认位于用户缓存目录),该文件决定什么算作“新增”。列表中出现模型 ID 并不代表该模型已能响应请求,created 日期也只是供应商自报的。

安装

在 SourceWeft 中

  1. 打开 控制台中的 AI Model Watch,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

ai-model-watch

List the models each AI provider's API serves, and see what's new since the last time you looked. One command, no dependencies, Node 18+. It also runs as an MCP server, so Claude or Cursor can check for you.

New models often show up in a provider's /models list before any announcement. ai-model-watch saves each provider's list, and on the next run prints only the model IDs that weren't there before. Run it by hand, from cron, or in CI with --exit-code.

[ai-model-watch recording a baseline of 470 OpenRouter models, then reporting 2 new ones]

$ ai-model-watch -p openrouter2026-10-17T09:26:01.231ZOpenRouter: 2 new  + deepseek/deepseek-v4.1-flash-1017  DeepSeek: DeepSeek V4.1 Flash 1017 (listed as created 2026-10-17)  + reflection/beam-1.0-501b-a23b  Reflection: Beam 1.0 501B A23B (listed as created 2026-10-16)

The first run records a baseline (OpenRouter: 470 models recorded as the baseline), so you only hear about changes after that.

Providers

ProviderEndpointKey
OpenRouterGET https://openrouter.ai/api/v1/modelsnone, works out of the box
OpenAIGET https://api.openai.com/v1/modelsOPENAI_API_KEY
AnthropicGET https://api.anthropic.com/v1/models (paginated)ANTHROPIC_API_KEY
Google GeminiGET https://generativelanguage.googleapis.com/v1beta/models (paginated)GEMINI_API_KEY or GOOGLE_API_KEY
MistralGET https://api.mistral.ai/v1/modelsMISTRAL_API_KEY
xAIGET https://api.x.ai/v1/modelsXAI_API_KEY
DeepSeekGET https://api.deepseek.com/modelsDEEPSEEK_API_KEY

Listing models is free on every one of these APIs. Nothing is generated and no tokens are spent. A provider whose key isn't set is skipped. Keys are sent only to that provider, never across a redirect, and never printed.

Install and run

brew install markksantos/tap/ai-model-watch   # macOS / Linux (Homebrew)# or, with Node 18+npx github:markksantos/ai-model-watch# orgit clone https://github.com/markksantos/ai-model-watch && node ai-model-watch/bin/ai-model-watch.js
ai-model-watch [options]  -p, --providers <list>  openrouter,openai,anthropic,gemini,mistral,xai,deepseek (default: all with a key)  -s, --state <file>      where the last-seen lists live (default: ~/.cache/ai-model-watch/state.json)  -w, --watch <seconds>   keep running and check every N seconds (minimum 60)      --removed           also print models that disappeared      --json              JSON output      --exit-code         exit 1 when anything new appears (for cron and CI)  -q, --quiet             print only new models      --mcp               run as an MCP server on stdio

MCP server (Claude, Cursor, VS Code)

--mcp runs it as a Model Context Protocol server on stdio, so an assistant can ask what's new itself. Two tools:

  • check_new_models: the model IDs each provider started listing since the last check (same state file as the CLI).
  • list_models: what one provider lists right now, with an optional substring filter.

Claude Code:

claude mcp add ai-model-watch -- npx -y github:markksantos/ai-model-watch --mcp

Or as a Claude Code plugin (this repo is its own marketplace):

/plugin install ai-model-watch --marketplace markksantos/ai-model-watch

On Claude Code versions older than 2.1.275, run /plugin marketplace add markksantos/ai-model-watch, then /plugin install ai-model-watch@ai-model-watch. The plugin passes any provider keys set in your environment through to the server, and adds an ai-model-watch skill so Claude reaches for the tools when you ask whether a model is out yet.

The skill on its own (Claude Code, Cursor, Codex and other agents), from claude-plugins.dev:

npx skills-installer install @markksantos/ai-model-watch/ai-model-watch

Claude Desktop, one click: download ai-model-watch-1.2.0.mcpb and open it. Desktop asks for the optional keys in its settings.

Claude Desktop, Cursor and other clients (mcpServers in their JSON config):

json
{  "mcpServers": {    "ai-model-watch": {      "command": "npx",      "args": ["-y", "github:markksantos/ai-model-watch", "--mcp"]    }  }}

OpenRouter works without a key. To include another provider, add its key from the Providers table to an env object in the same entry.

Cron

*/15 * * * * OPENAI_API_KEY=... ANTHROPIC_API_KEY=... ai-model-watch -q >> ~/model-drops.log

GitHub Actions

examples/github-action.yml runs the check on a schedule, caches the state file between runs, and fails the job (so GitHub emails you) when a new model appears.

Library

npm install github:markksantos/ai-model-watch, then:

js
const { check, fetchProvider } = require('ai-model-watch');
const report = await check({ providers: ['openrouter', 'anthropic'] });for (const p of report.providers) {  for (const m of p.added || []) console.log(p.label, m.id);}

fetchProvider(id, { env, fetch }) returns { status: 'ok' | 'skipped' | 'error', models: [{ id, name, created }] }. check() diffs against the state file and saves the new lists. A provider that errors keeps its last good list. Errors include HTTP and network failures, a redirect, a body that isn't that provider's list shape, a malformed model ID, and pagination that doesn't finish. So a bad response never empties the saved list or makes the next run report the whole catalog as new.

What a list can't tell you

A model ID in a /models list means the provider lists it. It doesn't prove the model answers requests yet, and some providers list models days before they are generally available. created is whatever date the provider reports, not when the model appeared.

The hosted version, ArtificialWatch, polls these APIs plus the public catalogs every 60 seconds and confirms a detection on a second sweep before anything fires. Then it alerts you by email and Chrome push (free), or by text or phone call. Use it if you'd rather not keep a cron job running.

License

MIT

来源:README.md,提交 bd4874c

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

2
  1. v1.2.0最新Nov 1, 2026
  2. v1.1.0Oct 18, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Model 集成