Mockbird
Qué hace este MCP
Creates and hosts mock REST APIs with seeded data and custom routes, while supporting request inspection, snapshots, evaluations, and uptime monitoring.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Resource name, plural (e.g. products).'}, 'seed': {'type': 'number', 'description': 'Records to seed (default 20, max 100).'}, 'fields': {'type': 'array', 'items': {'type': 'object'}, 'description': "Array of {name, type} (or {name, type:'oneOf', values:[…]}). Optional."}, 'project': {'type': 'string', 'description': 'Project id. Omit (together with adminKey) to auto-create a fresh project.'}, 'adminKey': {'type': 'string', 'description': "The project's adminKey. Omit (together with project) to auto-create."}, 'template': {'type': 'string', 'description': 'Built-in template name. Optional (use this OR fields).'}}}
Esquema de entrada
{'type': 'object', 'properties': {'service': {'type': 'string', 'description': 'Service id, name, or hostname substring (e.g. httpbin, reqres.in). Optional — omit for the summary.'}}}
Esquema de entrada
{'type': 'object', 'properties': {'ttl': {'type': 'number', 'description': 'Optional: self-expiring project — auto-deletes after this many seconds (60–604800, i.e. 1 min to 7 days). Perfect for CI/eval sandboxes that must not leak even when the run crashes. Extend or cancel later via HTTP: PUT /api/projects/:id/settings {"ttl": seconds | null}.'}, 'name': {'type': 'string', 'description': 'Project name (max 60 chars). Optional.'}, 'preset': {'enum': ['blog', 'ecommerce', 'saas', 'payments', 'openai', 'blank'], 'type': 'string', 'description': "Seeded preset; 'blank' = truly empty. Omit for a starter project. Optional."}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'adminKey', 'path'], 'properties': {'body': {'type': 'string', 'description': 'Response body template (string; JSON works).'}, 'path': {'type': 'string', 'description': 'e.g. /health, /config/:key, /webhooks/*'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'ANY'], 'type': 'string', 'description': 'Default GET.'}, 'status': {'type': 'number', 'description': 'Response status (default 200).'}, 'delayMs': {'type': 'number', 'description': 'Artificial latency in ms.'}, 'project': {'type': 'string'}, 'adminKey': {'type': 'string'}, 'contentType': {'type': 'string', 'description': 'Default application/json.'}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'adminKey'], 'properties': {'project': {'type': 'string', 'description': 'Project id.'}, 'adminKey': {'type': 'string', 'description': "The project's adminKey."}}}
Esquema de entrada
{'type': 'object', 'required': ['project'], 'properties': {'ttl': {'type': 'number', 'description': 'Self-expiring fork: auto-deletes after this many seconds (60–604800), even if your run crashes. Optional.'}, 'name': {'type': 'string', 'description': 'Name for the fork (default: <source name>-fork). Optional.'}, 'project': {'type': 'string', 'description': 'Source project id to fork (or "demo").'}, 'adminKey': {'type': 'string', 'description': 'Source project\'s adminKey. Not needed when forking "demo".'}, 'withSnapshots': {'type': 'boolean', 'description': "Also copy the source's snapshots into the fork (answer keys travel with it). Optional."}}}
Esquema de entrada
{'type': 'object', 'properties': {'seed': {'type': 'number', 'description': 'Deterministic seed — same seed returns the same rows. Optional.'}, 'fields': {'type': 'object', 'description': 'Custom shape: {outputKey: type}, e.g. {"id":"counter","name":"firstName","mail":"email","signup":"dateTime"}. Optional.'}, 'params': {'type': 'object', 'description': 'Extra FakerAPI-compatible query params, e.g. {"_gender":"female"}, {"_price_min":10,"_price_max":500}, {"_characters":500}, {"_width":640}. Optional.'}, 'quantity': {'type': 'number', 'description': 'Rows to generate (1-100, default 5).'}, 'resource': {'type': 'string', 'description': 'One of persons|users|addresses|companies|books|products|texts|images|places|credit_cards. Default persons. Ignored when fields is set.'}}}
Esquema de entrada
{'type': 'object', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'poll/info/delete: the heartbeat id (hb-…) returned by create.'}, 'name': {'type': 'string', 'description': 'create: a label for the job (shown on the status page), e.g. "nightly backup".'}, 'action': {'enum': ['create', 'ping', 'poll', 'info', 'delete'], 'type': 'string', 'description': 'What to do.'}, 'notify': {'type': 'string', 'description': 'create (optional): the webhook URL to alert when the ping stops. Omit it to get a pollable heartbeat instead.'}, 'secret': {'type': 'string', 'description': 'poll/info/delete: the secret returned by create.'}, 'ping_url': {'type': 'string', 'description': 'ping: the ping URL returned by create (https://…/ping/p-…).'}, 'grace_minutes': {'type': 'number', 'description': 'create: extra slack before alerting (5–1440). Default: half the period.'}, 'period_minutes': {'type': 'number', 'description': 'create: how often the job is supposed to run, in minutes (30–10080).'}}}
Esquema de entrada
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['badge', 'chart', 'qr', 'og', 'placeholder', 'avatar'], 'type': 'string', 'description': 'Which image to mint.'}, 'size': {'type': 'string', 'description': 'Optional size path: "WxH" for chart/og/placeholder (e.g. "800x400"), a single number for qr (e.g. "512") or a square placeholder.'}, 'format': {'enum': ['png', 'svg'], 'type': 'string', 'description': 'Optional. badge is always SVG; chart/qr/og/placeholder default to PNG (og/chart/qr) or SVG (placeholder/avatar) — svg forces the vector twin.'}, 'params': {'type': 'object', 'description': 'Query params for the endpoint (see the per-kind lists in the tool description). Values are strings or numbers (arrays of numbers join with commas). Passing these directly as top-level properties (e.g. {"kind":"badge","label":"build","value":"passing"}) works too.'}, 'project': {'type': 'string', 'description': 'Optional project id (default "demo", the shared public playground). Use your own project id so live badge counts track your data.'}}}
Esquema de entrada
{'type': 'object', 'required': ['content'], 'properties': {'ttl': {'type': 'number', 'description': 'Optional: self-expiring project — auto-deletes after this many seconds (60–604800). Sandboxes for CI/eval runs clean themselves up.'}, 'name': {'type': 'string', 'description': 'Project name override. Optional.'}, 'seed': {'type': 'number', 'description': 'Records to seed per resource for OpenAPI specs (default 20, max 100).'}, 'content': {'type': 'string', 'description': 'The raw spec / db.json / collection / CSV text.'}, 'resource': {'type': 'string', 'description': 'CSV only: collection name (default items).'}}}
Esquema de entrada
{'type': 'object', 'required': ['project'], 'properties': {'path': {'type': 'string', 'description': 'Filter: segment-aware path prefix ("/tasks" matches /tasks and /tasks/5, not /tasksomething).'}, 'limit': {'type': 'number', 'description': 'Newest N entries to return (default 20, max 50).'}, 'since': {'type': 'string', 'description': 'Filter: only requests at/after this time (epoch ms or ISO-8601) — record the episode start, assert about only that episode.'}, 'method': {'type': 'string', 'description': 'Filter: HTTP method, comma-list ok (e.g. "DELETE" or "PUT,PATCH,DELETE").'}, 'status': {'type': 'number', 'description': 'Filter: exact response status (comma-list ok as a string via status_gte/lte for ranges).'}, 'project': {'type': 'string', 'description': 'Project id.'}, 'adminKey': {'type': 'string', 'description': 'Project adminKey (not needed for demo).'}, 'status_gte': {'type': 'number', 'description': 'Filter: status >= this (400 = any error).'}, 'status_lte': {'type': 'number', 'description': 'Filter: status <= this.'}}}
Esquema de entrada
{'type': 'object', 'required': ['project'], 'properties': {'project': {'type': 'string', 'description': 'Project id (e.g. demo).'}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'resource'], 'properties': {'id': {'type': 'string', 'description': 'Single record id. Optional.'}, 'params': {'type': 'object', 'description': 'Query params as key→value. Optional.'}, 'project': {'type': 'string'}, 'resource': {'type': 'string', 'description': 'Resource name (e.g. products).'}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'adminKey'], 'properties': {'action': {'enum': ['create', 'rotate', 'revoke', 'status'], 'type': 'string', 'description': 'Default: create.'}, 'project': {'type': 'string', 'description': 'Project id.'}, 'adminKey': {'type': 'string', 'description': "The project's adminKey."}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'adminKey', 'action'], 'properties': {'data': {'type': 'object', 'description': 'save only, optional: AUTHOR the snapshot inline instead of capturing live state — {"tasks":[{...records...}],"labels":[]} (records verbatim, ids preserved, [] = expected-empty, new resource names allowed). Author an eval answer key, then grade with the diff endpoint.'}, 'name': {'type': 'string', 'description': 'Snapshot name (required for restore/delete/diff; default for save: snapshot-<n>).'}, 'action': {'enum': ['save', 'list', 'restore', 'delete', 'diff'], 'type': 'string'}, 'ignore': {'type': 'string', 'description': 'diff only, optional: comma-separated field names excluded from comparison (volatile timestamps etc.), e.g. "updatedAt,id".'}, 'against': {'type': 'string', 'description': 'diff only, optional: compare the named snapshot against THIS other snapshot instead of live data.'}, 'project': {'type': 'string'}, 'adminKey': {'type': 'string'}}}
Esquema de entrada
{'type': 'object', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'poll/info/delete: the monitor id (mon-…) returned by create.'}, 'url': {'type': 'string', 'description': 'create: the public https URL to watch (e.g. https://api.example.com/health).'}, 'action': {'enum': ['create', 'poll', 'info', 'delete'], 'type': 'string', 'description': 'What to do.'}, 'notify': {'type': 'string', 'description': 'create (optional): the webhook URL to alert (Slack/Discord webhook, or any HTTPS endpoint — gets HMAC-signed JSON). Omit it to get a pollable monitor instead.'}, 'secret': {'type': 'string', 'description': 'poll/info/delete: the secret returned by create.'}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'adminKey'], 'properties': {'name': {'type': 'string', 'description': 'Optional: run a saved verdict spec by name instead of an inline spec (mutually exclusive with snapshot/ignore/trajectory).'}, 'ignore': {'type': 'string', 'description': 'Optional (with snapshot): comma-separated field names excluded from the state comparison, e.g. "updatedAt,createdAt".'}, 'project': {'type': 'string', 'description': 'Project id.'}, 'adminKey': {'type': 'string', 'description': "The project's adminKey."}, 'snapshot': {'type': 'string', 'description': 'Optional: snapshot name to diff live data against — pass means identical.'}, 'trajectory': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Optional: constraint objects — filters (method comma-list, path segment-prefix, status, status_gte, status_lte, since) + expectation (count exact, min, max). Example: [{"method":"DELETE","count":0}].'}}}
Esquema de entrada
{'type': 'object', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'poll/info/unsubscribe: the watch id (w…) returned by subscribe.'}, 'action': {'enum': ['subscribe', 'poll', 'info', 'unsubscribe'], 'type': 'string', 'description': 'What to do.'}, 'notify': {'type': 'string', 'description': 'subscribe (optional): webhook URL to alert (Slack/Discord webhook, or any HTTPS endpoint — gets HMAC-signed JSON). Omit it to get a pollable subscription instead.'}, 'secret': {'type': 'string', 'description': 'poll/info/unsubscribe: the secret returned by subscribe.'}, 'service': {'type': 'string', 'description': 'subscribe: service id from check_api_status (e.g. "reqres", "httpbin"), or "*" for all tracked services.'}}}
Esquema de entrada
{'type': 'object', 'required': ['project', 'resource', 'method'], 'properties': {'id': {'type': 'string', 'description': 'Record id (PUT/PATCH/DELETE).'}, 'body': {'type': 'object', 'description': 'Record fields (POST/PUT/PATCH).'}, 'method': {'enum': ['POST', 'PUT', 'PATCH', 'DELETE'], 'type': 'string'}, 'project': {'type': 'string'}, 'resource': {'type': 'string'}}}
Cambios recientes en herramientas
Servidores MCP similares
shiply
Publishes and manages web applications with SQL databases, serverless functions, domains, email tests, client intake, contracts, …
Fine Structure
Builds and hosts full-stack applications from prompts and supports agent communication through WhatsApp and email.
mcp
Provisions and manages cloud instances, networks, storage, databases, backups, VPNs, application deployments, and autocoding-agen…
EchoRelay
Manages a hosted API relay runtime, including projects, endpoints, credentials, publishing, keys, delivery logs, and dead-letter …
Supero
Builds, validates, publishes, tests, and deploys multi-tenant applications with schemas, CRUD operations, external data connector…
Replicate
Provides access to Replicate models, versions, collections, hardware, predictions, and deployments for running and managing hoste…
Relin
Configures webhook sources and destinations, monitors delivery health, investigates failures, manages retries, and replays events.
Scalix Cloud
Provides managed databases, SQL tools, container builds, persistent Linux machines, domains, scheduled functions, storage, and pr…