
ballpark
io.github.CloudCorpRecords/ballpark
Forwarding client for Dribba studio data: services, case studies, budget estimates, contact.
Documentation
ballpark
A forwarding client for the published Dribba MCP remote.
Dribba is a product studio; its remote MCP server exposes
public studio data — its services, its case studies, a
ballpark budget calculator, structured company facts, and
a contact-request tool. There is no installable package
for that remote, so ballpark gives it a local stdio MCP
server and a small CLI: tools/list is answered locally
from the verbatim live capture of the remote, and every
tools/call is forwarded to the remote over streamable
HTTP.
The upstream result passes through verbatim, including
structuredContent and any isError flag. Failures on
the way there or back are reported as an error result
whose text starts with ballpark error: .
Upstream and the override
- Upstream:
https://dribba.com/mcp(pinned). - Override: set
DRIBBA_MCP_URLto point the client at a different endpoint. This override is a reconstruction: no override is published for the remote-only original. - The client handshake is
initialize(protocol version2025-03-26, clientballpark/0.1.0), thennotifications/initialized, thentools/call. When the upstream issues anMcp-Session-Id, it is honoured on every later request. Responses may be plain JSON or an SSE stream. - Argument validation is local: an unknown tool or
malformed arguments fail before anything is forwarded.
submit_contact_requestis forwarded like the other tools; its captured description — which asks for explicit user confirmation of the exact name, email and message before calling — is served verbatim, and this rebuild adds no gating of its own.
Install and run
npx -y @reneturcios/ballpark mcp # stdio MCP server
npx -y @reneturcios/ballpark --version # 0.1.0
npx -y @reneturcios/ballpark list_services '{"limit":3}'
npx -y @reneturcios/ballpark estimate_project '{"platforms":["ios","web"],"complexity":"standard"}'
npx -y @reneturcios/ballpark list_projects '{"industry":"fintech"}'
npx -y @reneturcios/ballpark company_facts '{"fields":["offices","distinctions"]}'
Each tool subcommand takes one JSON argument string and prints the forwarded result. Exit codes: 0 on success, 1 on an error result, 2 on a usage or validation error.
MCP client config
{
"mcpServers": {
"ballpark": {
"command": "npx",
"args": ["-y", "@reneturcios/ballpark", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/ballpark # stdio MCP server
docker run --rm ghcr.io/cloudcorprecords/ballpark --version # CLI
Tools
| Tool | What it does |
|---|---|
list_services | List Dribba's services with a one-line summary and URL. |
estimate_project | Ballpark budget and range for an app/product, mirroring dribba.com's public calculator. Minimum project budget is €30,000. Requires platforms. |
list_projects | List Dribba's case studies (slug, title, industry). |
company_facts | Structured facts about Dribba: positioning, offices, team, distinctions, clients. |
submit_contact_request | Submit a real project inquiry to Dribba on behalf of the user. This sends an email and creates a lead — ONLY call it after the user has explicitly confirmed the exact name, email and message to be sent. Dribba replies within 1h. Rate-limited per client. |
Development
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev # run the CLI from source
License
MIT — Copyright (c) 2026 Rene Turcios.
@reneturcios/ballparknpm install @reneturcios/ballparkghcr.io/cloudcorprecords/ballpark:0.1.0docker pull ghcr.io/cloudcorprecords/ballpark:0.1.0:undefinedRelated Servers
io.github.CloudCorpRecords/abandoncheck
Judge whether a dependency is maintained, from factual signals: releases, commits, archival.
io.github.CloudCorpRecords/actionbridge
Zapier exposed actions as MCP tools via a generic action runner.
io.github.CloudCorpRecords/actionpin
GitHub Actions supply-chain hardener: audit workflows for unpinned actions and build a SHA pin plan.