@sandboxapis/mcp
Read-only MCP server exposing a simulated org's repos, PRs, issues, users, and commits through API-compatible replicas of ~21 provider dialects (GitHub, GitLab, Jira, Slack, Sentry, etc.).
Self-orient with
orient— returns every API surface and base URL, org/teams/repos, notable entry points, snapshot pinning, coverage manifest location, and anaccessblock (key status, requests remaining).Check quota with
check_budget— free call showing hourly limit, remaining, reset time (one shared window across all providers).Browse repositories via
list_repositories/get_repository, with provider-form ids (node_id / numeric id).Inspect pull/merge requests via
list_pull_requests(state filter) andget_pull_request(plus reviews/approvals in one result).List issues per repo with optional open/closed/all state filter (REST on git hosts and Jira, GraphQL on Linear).
Fetch users by login/username via
get_user.Search commits by author via
search_commits_by_author— SHAs are identical across GitHub and GitLab for cross-referencing.Pin a reproducible snapshot via
get_snapshot— returns a byte-identical hostname for drift-free CI.Read-only by design — writes return the provider's own error shape; uncovered endpoints return real 404s with an
X-SandboxAPIs-Coverageheader.Budget-aware refusals — over-limit results include an
upgradeblock (tier, upgrade URL, retryAfterSeconds).
Provides a read-only, API-compatible replica of Bitbucket with repositories, pull requests and their reviews/approvals, issues and user lookups, all built on a coherent simulated org whose references resolve across hosts.
Exposes an API-compatible replica of the Buildkite surface as part of the simulated olympus-labs data set, so agents can exercise Buildkite-shaped requests read-only without test accounts or cleanup.
Exposes an API-compatible replica of the CircleCI surface as part of the simulated olympus-labs data set, so agents can exercise CircleCI-shaped requests read-only without test accounts or cleanup.
Provides a read-only, API-compatible replica of GitHub with tools to list and fetch repositories, pull requests (including reviews), issues, users, and commits by author with cross-referencing SHAs, served from a simulated org with months of coherent history and provider-form ids.
Provides a read-only, API-compatible replica of GitLab, letting agents list and fetch repositories, merge requests with their approvals, issues, users and commits by author against realistic simulated data.
Serves an API-compatible replica of the HubSpot surface as part of the simulated olympus-labs data set, allowing agents to make read-only HubSpot-shaped requests without credentials or rate limits.
Provides an API-compatible, REST-based replica of Jira, letting agents list issues from a simulated org's coherent project history, read-only and without a test account.
Provides an API-compatible replica of Linear that serves issues over GraphQL, querying the same simulated org history that is available through the other hosts.
Serves an API-compatible replica of the OpenAI surface as part of the simulated olympus-labs data set, letting agents issue read-only OpenAI-shaped requests with no credentials required.
Exposes an API-compatible replica of the PagerDuty surface as part of the simulated olympus-labs data set, so agents can exercise PagerDuty-shaped requests read-only without consequences.
Exposes an API-compatible replica of the Salesforce surface as part of the simulated olympus-labs data set, so agents can exercise Salesforce-shaped requests read-only without credentials.
Exposes an API-compatible replica of the Sentry surface as part of the simulated olympus-labs data set, so agents can exercise Sentry-shaped requests read-only without credentials or rate-limit anxiety.
Provides an API-compatible replica of the Slack surface, letting agents query a simulated organisation's messaging data read-only as part of the cross-referencing olympus-labs data set.
Exposes an API-compatible replica of the Statuspage surface as part of the simulated olympus-labs data set, so agents can exercise Statuspage-shaped requests read-only without a test account.
Exposes an API-compatible replica of the Zendesk surface as part of the simulated olympus-labs data set, so agents can exercise Zendesk-shaped requests read-only without credentials or cleanup.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@sandboxapis/mcp orient, then list the open pull requests awaiting review"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@sandboxapis/mcp
An MCP server that gives an AI agent a realistic, read-only data set to work against (repos, pull requests, reviews, issues, sprints, commits), served through API-compatible replicas of GitHub, GitLab, Bitbucket, Azure DevOps, Jira, Linear, Slack, Microsoft Teams, Sentry, PagerDuty, Statuspage, CircleCI, Buildkite, Zendesk, Salesforce, HubSpot, Anthropic, OpenAI, ChatGPT, Cursor, Devin, Google Antigravity, Prometheus, Grafana and Datadog.
No test accounts. No credentials. No rate-limit anxiety. Nothing to clean up afterwards.
claude mcp add sandboxapis -- npx -y @sandboxapis/mcpThen have the agent call orient first. It comes back with the API surfaces and their base URLs, the org and its teams, notable entry points (each with a ready-to-run request), how to pin a reproducible snapshot, where the coverage manifest lives, and an access block saying what this server may spend — enough to make a correct call with no docs reading.
Why this exists
Agents that build or test integrations need something real to point at. The options are usually a hand-maintained fake org that's thin and stale, or a real account with credentials, rate limits, and consequences. This is the third option: one simulated company, olympus-labs, with months of coherent history, rendered into 25 different API dialects, where every reference resolves. A pull request's author is a fetchable user, its commits exist with matching SHAs, its reviewers belong to real teams, and the same story is queryable through every host.
Everything is read-only. Writes return the provider's own error shape with a plain explanation, so an agent that tries one learns something instead of breaking something.
Related MCP server: Faker MCP Server
Tools
Tool | What it does |
| Start here. Full self-orientation, no docs required — including |
| Costs nothing. Call it before any loop of more than a handful of requests: limit, remaining, when the window resets. |
| Repos, provider-shaped, with provider-form ids. |
| PRs/MRs with their reviews or approvals. |
| Issues — REST on git hosts and Jira, GraphQL on Linear. |
| A user by login/username. |
| Commits by author, with SHAs that cross-reference across hosts. |
| The pinned hostname for drift-free CI. |
Results come from the same public API a human would point a client at, so anything an agent learns here transfers directly to a curl or an Octokit call.
Configuration
Everything is optional — the server works with no configuration at all.
Variable | Effect |
| Lifts the anonymous limit (60 req/hr) to 600. Free key at sandboxapis.dev — agents exhaust 60/hr quickly. Without it, a refusal names this variable rather than a signup page; with it, a refusal names the rung the key is on. Either way the tool result carries |
| Point a surface elsewhere: a pinned snapshot host, or a self-hosted instance. |
When the budget runs out
Nothing is hidden behind a limit, but every caller has an hourly window and an agent in a loop will find it. Two things make that legible without parsing prose:
Ask first.
check_budgetreads the real window — limit, remaining, seconds until it resets — through an endpoint that is exempt from the budget it reports, so the check itself is free.orientreturns the same facts in itsaccessblock, so an agent that oriented already knows.The refusal is data. A refused tool result keeps its
{provider, path, status, body}exactly as before and addsupgrade:
{
"provider": "github",
"path": "/users/athena",
"status": 403,
"body": { "message": "API rate limit exceeded. …", "documentation_url": "…", "status": "403" },
"upgrade": { "tier": "anonymous", "url": "https://sandboxapis.dev/upgrade?from=anonymous", "retryAfterSeconds": 600 }
}tier is the rung that refused; url is absent when there is nothing to offer; retryAfterSeconds is present when the provider sent a Retry-After. upgrade appears on over-limit refusals only — never on a success, a coverage 404, or a read-only refusal.
Live vs. pinned
The default hosts roll forward daily, so the newest activity is always hours old — good for demos and exploration. For tests you want data that never drifts, ask get_snapshot for a pinned hostname and set the matching SANDBOXAPIS_BASE_URL_*. A snapshot regenerates byte-identically on every request, so pinned assertions hold indefinitely.
Honest boundaries
Coverage is deliberately bounded and published. An uncovered REST endpoint returns a real 404 plus an X-SandboxAPIs-Coverage header pointing at the coverage manifest; an uncovered GraphQL field returns an explicit coverage error rather than a silent null. You will never get a plausible-looking invented value.
This package is a thin client: it holds no data of its own and reads the hosted service over the network.
Source and licence
This repository is the source of the MCP server, the @sandboxapis/mcp package on npm. It is a thin client: it holds no data of its own and reads the hosted service at sandboxapis.dev over HTTPS. The hosted service, the API replicas and the engine that generates the data set are separate and are not included here.
The code is MIT licensed, see LICENSE. The copyright holder is Driftwork LLC, the company behind SandboxAPIs.
The source of record is the SandboxAPIs monorepo, and this repository is written from it by a script on every release, with the release's version as a tag. Bug reports and feature requests are welcome in this repository's issues. A pull request here is read and carried over by the SandboxAPIs team rather than merged in place, because the next release would otherwise overwrite it. Contact: team@sandboxapis.dev.
Docs: sandboxapis.dev/docs/mcp · Coverage: sandboxapis.dev/coverage
Available Tools
10 toolscheck_budgetCheck the remaining request budgetA
Costs nothing — call it before any loop of more than a handful of requests. Returns this server's real hourly window (limit, remaining, when it resets) read from the provider's own budget endpoint, which is exempt from the budget it reports, plus whether a key is set and where to raise the limit. The window is ONE bucket per caller shared across every provider host, so the numbers apply to all of them.
Inputs: provider.
get_pull_requestGet a pull/merge request with its reviewsB
Fetch one PR (GitHub) / MR (GitLab) plus its reviews (GitHub) / approvals (GitLab). Returns both in one result; each carries provider-form ids for cross-referencing.
Inputs: number (required), provider (required), repo.
get_repositoryGet a repositoryC
Fetch one repository by name (default: the flagship repo). Provider-shaped, with provider-form ids.
Inputs: provider (required), repo.
get_snapshotGet a pinned snapshot hostnameA
Return the pinned, reproducible hostname for a provider — point your client's base URL at it for drift-free CI. A snapshot regenerates byte-identically on every request.
Inputs: provider (required).
get_userGet a userC
Fetch a user by login/username. Provider-shaped, with provider-form ids.
Inputs: login (required), provider (required).
list_issuesList issuesC
List a repo's issues. Optional state filter (open/closed/all).
Inputs: provider (required), repo, state.
list_pull_requestsList pull requests / merge requestsC
List a repo's pull requests (GitHub) or merge requests (GitLab). Optional state filter.
Inputs: provider (required), repo, state.
list_repositoriesList the org's repositoriesB
List repositories for the universe's org. Results are identical to the provider's REST API and carry provider-form ids (node_id / numeric id).
Inputs: provider (required).
orientOrient in the SandboxAPIs universeA
START HERE. Returns everything needed to use SandboxAPIs with no docs: the universe/theme, every API surface and its base URL (git hosts and issue trackers), live-vs-snapshot modes and how to pin, the org and its teams/repos, notable entry points (each with a ready-to-run REST path), where the coverage manifest lives, and this server's access block — whether a key is set and how many requests are left this hour. Writes: this server is READ-ONLY, including for a scratch-enabled key — the scratch layer (a per-key, 24-hour overlay: GitHub issues and issue comments, Jira comments and transitions, and Slack messages into existing channels) is a REST feature, so use the GitHub, Jira or Slack base URL above with your key for it, and expect the tools here to answer from the shared data set alone.
Inputs: no named parameters.
search_commits_by_authorSearch commits by authorB
Find commits authored by a given login in a repo. Returns SHAs (identical across GitHub and GitLab, invariant #5) with a REST path to fetch each — so you can cross-reference against either provider.
Inputs: author (required), repo, provider.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
The data tools each target a distinct resource+action (repositories, pull requests, issues, users, commits), and the three meta tools (orient, get_snapshot, check_budget) serve clearly different setup/reproducibility/budget purposes. Minor risk that orient overlaps conceptually with check_budget and get_snapshot as 'introspection' tools, but descriptions clearly separate them.
Nearly all tools follow a predictable verb_noun pattern (get_snapshot, check_budget, list_repositories, get_repository, list_pull_requests, get_pull_request, list_issues, get_user, search_commits_by_author). The lone bare verb 'orient' is a minor deviation from the otherwise consistent scheme.
Ten tools is well-scoped for a read-only multi-provider API surface with a few setup helpers. Each tool earns its place with no obvious redundancy or filler.
The read-only surface covers lists/gets for repositories and pull requests plus issues, users, and commit search, matching the stated read-only, snapshot-oriented purpose. Asymmetries remain (list_issues with no get_issue, get_user with no user list, no issue/PR comment retrieval), but agents can work around these via the returned REST paths.
Maintenance
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Email inboxes, webhooks, mock APIs, 2FA codes, approvals and 170 tools for AI agents.
Your AI dev team: agents that build, test, review and ship, each on its own cloud machine.
Your AI Agent's Infrastructure Layer. Connect Claude, Copilot, Codex, or ChatGPT to 200+ managed open source services. Start databases, pipelines, and applications through natural language.
Related MCP Servers
AlicenseAqualityBmaintenanceA deterministic eval engine for coding agents. Your agent claims it fixed the bug—this checks it. The same scenario runs twice against a sandbox of the services your code calls, with failures injected on purpose. It must fail on the old code and pass on the new. The verdict is an exit code, not a model's opinion. Every run leaves a receipt.19134 npm1MIT- FlicenseNot gradedqualityDmaintenanceGenerates realistic, context-aware synthetic data for AI agents to populate databases, mock APIs, and create test scenarios without exposing real PII.7 npm3-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to explore and query a locally generated synthetic organization—with employees, teams, projects, documents, and relationships—through read-only MCP tools, facilitating agent testing, evaluation, and demos without external APIs.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to build, debug, and test hosted mock REST APIs by scaffolding persistent CRUD resources, importing OpenAPI specs, simulating requests, auto-healing failing endpoints, and injecting latency or error faults. It also exposes live OpenAPI and TypeScript contract resources for each workspace.MIT