AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Gamefunds Mcp

mcp-kolegaliterat-gamefunds-mcp · by KolegaLiterat

MCP server that matches your game to publishers, VCs, dev funds and grants — 210+ funding sources from the GameFunds directory, plus a private outreach pipeline. Works with Claude Code, Cursor and any MCP client.

— No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add mcp-kolegaliterat-gamefunds-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ● Shell / process execution Used
  • ● Environment & secrets Used
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-kolegaliterat-gamefunds-mcp)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 2mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Gamefunds Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

GameFunds MCP

MCP server for browsing a local copy of the GameFunds directory (publishers, grants, VCs) and tracking your personal outreach pipeline.

What it does — and what it does not

Does:

  • Search and filter 200+ funding sources from the GameFunds directory
  • Match your project (genre, budget, stage, country) to publishers, grants, and investors
  • Return submission briefs, pitch rubrics, and deterministic deck checks
  • Keep your pipeline state locally (contacts, notes, follow-ups)

Does not:

  • Know about adult/NSFW games — the upstream catalog has almost no coverage there; genre_signal: none is honest, not a bug
  • Guarantee grant amounts — many entries say "varies" or omit numbers; grants without budget data get confidence: low
  • Match genres in languages other than English — queries like "przygodowa" won't map to catalog terms
  • Replace legal or financial advice — it surfaces directory notes, not deal terms

Tools

Thirteen tools, grouped by what they touch. Catalog tools are public (read scope); pipeline tools are private to the server owner (write scope).

| Tool | Scope | What it does | |------|-------|--------------| | match_project | read | Rank funding sources for a project (genre, budget, stage, country). Returns candidates grouped by funding type — see [Scoring](#scoring). | | search_funding | read | Full-text search over the catalog. Hyphens/slashes/& are safe (turn-based, hack & slash). | | filter_funding | read | Structured filter: section, country, budget tier, comm rating, has-email. | | get_entity | read | Full record for one source: links, contact, submission path, notes, amounts. | | get_submission_brief | read | How to pitch a specific source: channel, submission links, stated criteria, hard filters, portfolio. | | get_pitch_rubric | read | Deck rubric tailored to the target's funding type (publisher / VC / project investor / grant), derived from the upstream pitch tutorial. | | review_pitch | read | Deterministic deck check: missing slides, missing numbers, hard-filter violations. It stays quiet on a solid deck — it does not pad. | | gamefunds_help | read | Guidance topics + a bridge to the concept guides (gamefunds://guide/*). | | check_updates | read | Cheap SHA check for upstream directory changes. | | set_status | write | Set a pipeline status (contacted, in_talks, signed, …) for a source. | | add_note | write | Append a dated note to a pipeline entry. | | list_pipeline | write | Your outreach state; stale_days=N surfaces overdue follow-ups. | | sync_directory | write | Re-sync the directory + guides from upstream. |

Scoring

match_project uses a deterministic heuristic — no LLM. Results are grouped by funding type (publisher, vc_equity, project_investor, grant), and scores are comparable only within a group: a grant scoring 15 is not "worse" than a publisher scoring 66, they are different funding paths.

Each candidate carries a breakdown (budget / country / stage / genre / comm), a confidence (high / medium / low), and human-readable reasons. Two design choices are worth knowing:

  • Genre outweighs country for publishers. A cozy-game publisher in the US beats a

generic publisher in your own country — country is a tie-breaker (weight 5), not the driver. For grants, country is near-decisive (weight 28), because grants are regional.

  • Missing data is not zero. breakdown.budget: null and confidence: low mean the

catalog lacks the data, not that it scored poorly. genre_signal: none means no catalog entry matches your genre at all — the ranking is then budget-and-stage only, flagged with genre_warning, and you should verify by hand.

Hard filters remove sources that cannot work (counted in hard_filtered): budget off by 2+ tiers, a grant outside your country, or a genre-exclusivity clash (a sandbox game against a publisher that says "strictly no sandbox", a cozy sim against "horror only"). These are dropped, not down-ranked.

The full weight table lives in data/help/scoring.md and is available at runtime via gamefunds_help("scoring").

Data attribution

Directory data comes from github.com/GameDevGrzesiek/GameFunds © Grzegorz Wątroba, MIT license.

data/rubrics.json is derived from Grzegorz's PitchDeckTutorial.md in that repository.

Grzegorz is a working game dev — his game is Foxy Dumplings on Steam. If this tool is useful to you, wishlisting it is a good way to say thanks.

The database (data/gamefunds.db) and synced guides (data/guides/) are not in git — run gamefunds sync --apply on first use.

Your pipeline (publisher contacts, notes) lives only in your local DB and must never be committed.

Local setup (stdio, no tokens)

git clone 
cd gamefunds-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
gamefunds sync --apply

If gamefunds sync returns a GitHub 403 rate limit error, set an unscoped personal access token and retry:

export GITHUB_TOKEN=   # no scopes needed — the upstream repo is public
gamefunds sync --apply

Create a token at github.com/settings/tokens (classic, no checkboxes). Sync uses at most one api.github.com call per run; guide files are fetched from raw.githubusercontent.com (outside the 60/h unauthenticated API quota).

Stdio mode needs no GAMEFUNDS_TOKEN. Auth applies only to HTTP transport.

Paths to the database, guides, and logs are resolved from the package install location (not the process cwd). Override with GAMEFUNDS_DATA_DIR if needed (e.g. Docker volume at /app/data).

Connect it to an agent

Claude Code (local, stdio)

One command, from any directory:

claude mcp add gamefunds -- /absolute/path/to/gamefunds-mcp/.venv/bin/python -m gamefunds.server

Use the absolute path to the virtualenv's Python, not bare python — the agent launches the server as a subprocess and will not inherit your activated venv.

Add --scope project to write it into the project's .mcp.json (shareable with a team) instead of your personal config.

Manual config instead of the CLI

Create .mcp.json in your project root:

{
  "mcpServers": {
    "gamefunds": {
      "command": "/absolute/path/to/gamefunds-mcp/.venv/bin/python",
      "args": ["-m", "gamefunds.server"]
    }
  }
}

cwd is optional — data paths resolve from the package install location, not the process working directory.

Claude Code (remote, HTTP + token)

If you deployed the server (see [HTTP deployment](#http-deployment)):

claude mcp add --transport http gamefunds https://your-host.example/mcp \
  --header "Authorization: Bearer $GAMEFUNDS_TOKEN"

Claude Desktop

Edit the config file directly, then restart the app:

  • macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows — %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "gamefunds": {
      "command": "/absolute/path/to/gamefunds-mcp/.venv/bin/python",
      "args": ["-m", "gamefunds.server"]
    }
  }
}

cwd is optional — data paths resolve from the package install location, not the process working directory.

Cursor

Same JSON as above, in .cursor/mcp.json (per project) or ~/.cursor/mcp.json (global).

Verify it works

In Claude Code, run /mcp — gamefunds should be listed as connected, exposing 13 tools and 6 resources. If it is not, check that gamefunds sync --apply has run and that the Python path is absolute.

> Editing the server code? The agent starts the server once and keeps the process > alive. Code changes are not picked up until you reconnect (/mcp → reconnect, or > restart the agent). Testing against a stale process is the fastest way to conclude a > working fix is broken.

Then ask it something

The tools are self-describing, so plain language works:

I'm making a cozy pottery sim. Two-person studio in Poland, $180k budget,
vertical slice done. Where should I look for funding?
What does Team17 want in a pitch, and how do I submit to them?
Review this deck for Whitethorn Games: 
Log that I sent Kiln to Anshar today, follow up in two weeks.

Genre matching works against an English catalog — describe the genre in English (cozy crafting sim, turn-based tactics), even if you talk to the agent in another language. If nothing in the catalog matches your genre, match_project tells you so (genre_signal: none) rather than inventing a shortlist.

CLI

| Command | Purpose | |---------|---------| | gamefunds sync | Dry-run upstream sync | | gamefunds sync --apply | Download directory + guides into local DB | | gamefunds check | Cheap SHA check for upstream updates | | gamefunds stats | Entity and pipeline counts | | gamefunds token | Generate a full HTTP token (GAMEFUNDS_TOKEN) — do not share | | gamefunds token --readonly | Generate a shareable catalog-only token (GAMEFUNDS_TOKEN_READONLY) | | gamefunds serve --transport http | Run HTTP server (requires token) |

HTTP deployment

HTTPS is mandatory. A bearer token sent over plain HTTP is visible on the first request. Never expose HTTP publicly without TLS termination.

The server refuses to start in HTTP mode without GAMEFUNDS_TOKEN. Full and read-only tokens must be different values.

Private owner token (GAMEFUNDS_TOKEN) — write access + pipeline visibility. Never publish this.

gamefunds token          # FULL token — Do NOT share
export GAMEFUNDS_TOKEN=...

Shared read-only token (GAMEFUNDS_TOKEN_READONLY) — catalog only; safe to post on a forum or demo. Pipeline tools are refused; get_entity omits pipeline data.

gamefunds token --readonly   # SAFE to share publicly
export GAMEFUNDS_TOKEN_READONLY=...

Never publish GAMEFUNDS_TOKEN — it exposes your pipeline. Share only the read-only token.

gamefunds serve --transport http --port 8080

Generate .env from .env.example and set both variables as above.

Rate limiting

Owner token: 60 requests/minute (GAMEFUNDS_RATE_LIMIT). Shared read-only token: 300/minute (GAMEFUNDS_RATE_LIMIT_READONLY) — higher because many forum users share one token. One LLM conversation uses ~10–50 tool calls. Limits are keyed by SHA-256 hash of the bearer token — the raw token never appears in logs or rate-limit storage.

Docker

cp .env.example .env   # set GAMEFUNDS_TOKEN
docker compose up -d --build
  • Binds to 127.0.0.1:8080 by default — put nginx, Caddy, or Traefik in front with TLS
  • GAMEFUNDS_DATA_DIR (default /app/data in the image) holds DB, synced guides, and logs — mount it as a volume
  • Fresh container auto-runs gamefunds sync --apply if no DB exists
  • Memory limit: 256 MB

Scopes

| Scope | Tools | |-------|-------| | read | search, filter, getentity (catalog only — no pipeline block), matchproject, briefs, rubrics, reviewpitch, help, checkupdates | | write | setstatus, addnote, listpipeline, syncdirectory; get_entity includes pipeline |

Read-only tokens calling pipeline tools get a clear message pointing to the open-source repo — not a 500, and no private data.

Development

pip install -e ".[dev,http]"
pytest

Security checklist

  • [ ] GAMEFUNDS_TOKEN set before HTTP start
  • [ ] TLS terminates before traffic hits the app
  • [ ] .env not committed (in .gitignore)
  • [ ] data/*.db and data/guides/ not committed
  • [ ] GAMEFUNDS_LOG_ARGS=0 in production (default — no argument logging)

License

MIT — see [LICENSE](LICENSE). GameFunds directory data © Grzegorz Wątroba, used under MIT with attribution.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.