# Mockbird MCP server

Create hosted mock REST APIs as tools: seed fake data, import specs, query, write, snapshot. Free.

## Links
- Registry page: https://www.getdrio.com/mcp/dev-workers-mockbird-mockbird-mockbird
- Website: https://mockbird.mockbird.workers.dev

## Install
- Endpoint: https://mockbird.mockbird.workers.dev/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mockbird.mockbird.workers.dev/mcp

## Tools
- create_project - Create a new mock REST API project. Returns {id, adminKey, baseUrl, resources[]}. SAVE the adminKey — it is required for admin operations (add_resource, custom_route, snapshots) and is shown only once. Presets seed a full backend: blog (posts/comments/authors), ecommerce (products/orders/customers/reviews), saas (users/teams/events), openai (ready OpenAI-compatible mock — chat completions incl. streaming SSE, embeddings with a real 1536-dim vector, models; point OPENAI_BASE_URL at {baseUrl}/v1). Omit preset for a starter project (one seeded "items" resource — live data immediately, reshape or delete it); use "blank" for a truly empty project you fill via add_resource or import_data. The mock API is then live at baseUrl: standard REST CRUD (GET/POST/PUT/PATCH/DELETE), CORS enabled, no auth needed. Endpoint: https://mockbird.mockbird.workers.dev/mcp
- import_data - Create a live mock API from existing artifacts. Auto-detects: OpenAPI 3.x / Swagger 2.0 spec (JSON or YAML) → resources with realistic seeded data; json-server db.json → hosts your exact records; Postman Collection v2.x → resources from requests, saved example responses become records verbatim; CSV/TSV → one typed collection (numbers/booleans inferred per column). Max 512 KB. Returns {id, adminKey, baseUrl, warnings[]}. Endpoint: https://mockbird.mockbird.workers.dev/mcp
- add_resource - Add a resource (collection) to a project and seed it with realistic fake data. Either pass template (one of the built-ins, e.g. users, products, posts, comments, orders, todos, reviews, customers, events) or fields: an array of {name, type} where type ∈ uuid|firstName|lastName|fullName|username|email|avatar|image|word|words|title|sentence|paragraph|number|price|percent|boolean|date|pastDate|futureDate|url|domain|ip|phone|city|country|address|zipCode|company|jobTitle|color|latitude|longitude|rating|age|slug|status|category|refId, plus {name, type:"oneOf", values:[...]} for enums. seed = number of records to generate (default 20, max 100, 0 = empty). Endpoint: https://mockbird.mockbird.workers.dev/mcp
- project_info - Get a project's public root index: every resource with record counts and URLs, custom routes, auth mode, and export links (openapi.json, types.ts, postman.json, db.json, GraphQL). No adminKey needed. Try project "demo" for the shared public playground. Endpoint: https://mockbird.mockbird.workers.dev/mcp
- query_records - GET records from a mock resource. params is an object of query parameters, all optional: exact filters (field=value), operator suffixes (price_gte, date_lte, name_like, status_ne), full-text q, _sort/_order (or _page/_limit for pagination), select (field projection, e.g. "name,price"), _expand=<parent>/_embed=<children> relations. Failure simulation for testing: mock_status=503 forces that status, mock_delay=2000 adds latency (ms), mock_chaos=0.3 fails that fraction of requests randomly, mock_seq=503,503,200 serves a deterministic status sequence (fail twice then succeed — best for retry tests), mock_jitter=500 adds random latency, mock_envelope=data wraps the response. Pass id to fetch a single record. Defaults to _limit=25 — pass _limit explicitly for more (max 100 per page). Endpoint: https://mockbird.mockbird.workers.dev/mcp
- write_record - Create, update, or delete records in a mock resource. Writes persist (unlike JSONPlaceholder/FakeStoreAPI). POST creates (auto-id), PUT replaces, PATCH merges, DELETE removes. id required for PUT/PATCH/DELETE. Endpoint: https://mockbird.mockbird.workers.dev/mcp
- custom_route - Define a custom endpoint on a project (like /health, /config/:key, or a catch-all /webhooks/* request bin). body is a response template: {{query.x}} {{params.x}} {{body.x}} {{headers.x}} {{method}} {{path}} {{now}} {{ts}} {{uuid}} {{rand}}; triple braces {{{body}}} insert raw JSON. Custom routes take precedence over resource routes; '*' catch-alls are a fallback. Max 20 routes/project. Endpoint: https://mockbird.mockbird.workers.dev/mcp
- snapshots - Deterministic test fixtures: save the project's entire dataset under a name, restore it exactly later (list/delete too). Any GET can also be served read-only FROM a snapshot without touching live data via query param mock_snapshot=<name> in query_records params — parallel test scenarios on one project. Endpoint: https://mockbird.mockbird.workers.dev/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: dev.workers.mockbird.mockbird
- Version: 1.0.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 28, 2026
- Source: https://registry.modelcontextprotocol.io
