Are you the author? Sign in to claim
modelsplus
Comprehensive AI Model Directory & MCP Server
Unified REST API and Model Context Protocol (MCP) server for AI model metadata, built on models.dev data.
Features • Quick Start • API Docs • MCP • Contributing
Models PLUS provides a comprehensive AI model catalog with modern tooling:
Public API: https://modelsplus.quivr.tech
# List latest models
curl "https://modelsplus.quivr.tech/v1/models?limit=5"
# Find reasoning-capable models
curl "https://modelsplus.quivr.tech/v1/models?reasoning=true"
# Get specific model details
curl "https://modelsplus.quivr.tech/v1/models/openai:gpt-4o"
# Install dependencies
bun install
# Start development server
bun run dev
# Build for production
bun run build
1.2.21 - Runtime and package manager# Install dependencies
bun install
# Generate JSON assets from vendor data
cd packages/api && bun run generate && bun run build
bun run build — Build all workspacesbun run dev — SST Dev with Cloudflare Worker locallybun run dev:api — Direct Worker dev for API onlybun run deploy — Deploy via SST to Cloudflare Workersbun run sync:upstream — Sync vendor subtreeGenerate JSON assets from vendor TOML files:
cd packages/api
bun run generate
bun run build
Run development servers:
# SST Dev (recommended)
bun run dev
# Direct Worker dev
cd packages/api && bun run dev
Note: SST config (sst.config.ts) auto-builds @modelsplus/api and exposes the Worker URL.
No authentication required. The API is publicly accessible.
https://modelsplus.quivr.tech
All API responses return JSON. Error responses include:
{
"error": "Error message",
"status": 400
}
Currently no rate limiting is enforced, but please be respectful.
/v1/models)| Parameter | Type | Description | Example |
|---|---|---|---|
q | string | Search query (model name, provider, etc.) | q=gpt |
provider | string | Filter by provider | provider=openai |
tool_call | boolean | Filter by tool calling support | tool_call=true |
attachment | boolean | Filter by attachment support | attachment=true |
reasoning | boolean | Filter by reasoning capabilities | reasoning=true |
temperature | boolean | Filter by temperature support | temperature=true |
open_weights | boolean | Filter by open weights availability | open_weights=true |
min_input_cost | number | Minimum input cost filter | min_input_cost=0.001 |
max_input_cost | number | Maximum input cost filter | max_input_cost=0.01 |
min_output_cost | number | Minimum output cost filter | min_output_cost=0.002 |
max_output_cost | number | Maximum output cost filter | max_output_cost=0.05 |
min_context | number | Minimum context length | min_context=32000 |
max_context | number | Maximum context length | max_context=128000 |
min_output_limit | number | Minimum output limit | min_output_limit=4000 |
max_output_limit | number | Maximum output limit | max_output_limit=8000 |
modalities | string | Comma-separated modalities | modalities=image,text |
release_after | string | Released after date (ISO) | release_after=2024-01-01 |
release_before | string | Released before date (ISO) | release_before=2024-12-31 |
updated_after | string | Updated after date (ISO) | updated_after=2024-06-01 |
updated_before | string | Updated before date (ISO) | updated_before=2024-12-31 |
sort | string | Sort field | sort=name or sort=cost_input |
order | string | Sort order | order=asc or order=desc |
limit | number | Maximum results (default: unlimited) | limit=10 |
offset | number | Skip number of results | offset=20 |
fields | string | Comma-separated fields to return | fields=id,name,provider |
/v1/providers)| Parameter | Type | Description | Example |
|---|---|---|---|
q | string | Search query (provider name) | q=openai |
env | string | Filter by environment variable | env=API_KEY |
npm | string | Filter by npm package | npm=openai |
limit | number | Maximum results | limit=10 |
offset | number | Skip number of results | offset=5 |
{
"id": "openai:gpt-4o",
"provider": "openai",
"name": "GPT-4o",
"release_date": "2024-05-13",
"last_updated": "2024-08-06",
"attachment": true,
"reasoning": false,
"temperature": true,
"tool_call": true,
"open_weights": false,
"knowledge": "2023-10",
"cost": {
"input": 0.0025,
"output": 0.01,
"cache_read": 0.00125,
"cache_write": 0.00625
},
"limit": {
"context": 128000,
"output": 16384
},
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
}
{
"id": "openai",
"name": "OpenAI",
"env": ["OPENAI_API_KEY"],
"npm": "openai",
"api": "https://api.openai.com/v1",
"doc": "https://platform.openai.com/docs"
}
Base URL: https://modelsplus.quivr.tech
| Method | Endpoint | Description |
|---|---|---|
GET | /health | Health/status check |
GET | /.well-known/mcp | MCP discovery |
GET | /v1/models | List/search models |
GET | /v1/models/count | Count models after filters |
GET | /v1/models/:id | Get specific model details |
GET | /v1/providers | List/search providers |
GET | /v1/providers/count | Count providers after filters |
GET/POST | /mcp | MCP over HTTP (JSON-RPC) |
GET/POST | /mcp/http | Alternate MCP endpoint |
JavaScript/TypeScript:
// Search models
const models = await fetch('https://modelsplus.quivr.tech/v1/models?reasoning=true&limit=5')
.then(res => res.json());
// Get specific model
const model = await fetch('https://modelsplus.quivr.tech/v1/models/openai:gpt-4o')
.then(res => res.json());
Python:
import requests
# Find vision-capable models
response = requests.get('https://modelsplus.quivr.tech/v1/models',
params={'modalities': 'image', 'limit': 5})
models = response.json()
Models PLUS provides native Model Context Protocol (MCP) support for seamless integration with AI assistants.
search_models - Advanced search and filtering for AI modelsget_model - Detailed information about specific modelssearch_providers - Search and filter AI providersget_provider - Detailed provider informationAdd to your claude_desktop_config.json:
{
"mcpServers": {
"models-plus": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/sdk", "server", "https://modelsplus.quivr.tech/mcp"]
}
}
}
Configure MCP server with URL: https://modelsplus.quivr.tech/mcp
For any MCP-compatible client, use: https://modelsplus.quivr.tech/mcp
Once integrated, use natural language:
# Discover capabilities
curl "https://modelsplus.quivr.tech/mcp"
# List available tools
curl -s "https://modelsplus.quivr.tech/mcp" \
-X POST \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Model and provider metadata sourced from models.dev TOML files. The build process (packages/api/src/generate.ts) converts these into optimized JSON artifacts for the API and MCP handlers.
Deploys via SST to Cloudflare Workers:
bun run deploy
SST config creates a sst.cloudflare.Worker with global edge deployment.
We welcome contributions! Here's how to get started:
bun installbun run buildnpx ultracite format && npx ultracite lintBuilt on top of models.dev - a comprehensive open-source database of AI model specifications, pricing, and capabilities maintained by the SST team.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows