Skip to main content

MCP server for the Open Collective GraphQL API — read-only query proxy, schema lookup, and docs search.

Project description

MCP for OCP GraphQL API

An MCP server for the Open Collective GraphQL API v2. It gives an AI assistant three tools to learn the schema, search the docs, and run read-only queries against Open Collective — without exposing any write operations.

Using with AI safely

Open Collective data includes personally identifiable information (names, emails, payout details, addresses). This server is a generic read-only GraphQL proxy — the graphql_query tool can select any field the underlying token is allowed to read, so the guardrail against leaking PII is prompt-level, not enforced in code.

  • Prefer running locally (the stdio transport below) so your data and token never leave your machine.
  • Prefer anonymous mode (no token) when you only need public data — you then only ever see what the public API exposes.

Tokens are never logged or persisted by this server. For the full PII posture and safe field-selection guidance, see docs/using-with-ai-safely.md.

Install — Claude Code plugin (easiest)

For Claude Code, install the plugin instead of wiring things up by hand. It ships the MCP server (stdio, via uvx), the querying skill, and an opencollective-analyst agent — all pinned to a released version:

/plugin marketplace add opensourceeurope/mcp-for-ocp-graphql
/plugin install oc-platform-api@ose-ai

Set OC_PERSONAL_TOKEN in your environment for authenticated access (optional — omit for anonymous public data). Prefer this over the manual stdio setup below if you use Claude Code.

Two ways to run

Local — stdio (recommended)

Runs entirely on your machine over the MCP stdio transport. A token is optional: with no token the server runs anonymously against public data; with a token it can read whatever that token is authorized for. Published to PyPI and run with uvx.

# anonymous (public data only)
uvx mcp-for-ocp-graphql

# authenticated — get a token at https://opencollective.com/dashboard/personal-tokens
OC_PERSONAL_TOKEN=oc_xxx uvx mcp-for-ocp-graphql

Generic MCP client config:

{
  "mcpServers": {
    "mcp-for-ocp-graphql": {
      "command": "uvx",
      "args": ["mcp-for-ocp-graphql"],
      "env": { "OC_PERSONAL_TOKEN": "oc_xxx" }
    }
  }
}

OC_PERSONAL_TOKEN is delivered to the server as a process environment variable — either via the config's env block above or exported in your shell before launch (there is no CLI flag for it). Omit it to run anonymously.

Hosted — Streamable HTTP + OAuth

Prefer stdio (above) whenever your client supports it — it's simpler and your data and token never leave your machine. Reach for the HTTP transport only if your tool speaks MCP over HTTP and cannot launch a local stdio subprocess — typically web/hosted assistants like claude.ai custom connectors or ChatGPT connectors. Desktop agents (Claude Code, Cursor, Windsurf, Zed, VS Code) all support stdio — use that.

Each user authenticates with their own Open Collective personal token via an OAuth 2.1 / PKCE passthrough (a browser form at /oc-login); the server mints no tokens of its own and stores no shared credentials.

A shared community instance is hosted for the community in the EU (Scaleway, pl-waw). Point an HTTP-only MCP client at it:

claude mcp add --transport http mcp-for-ocp-graphql \
  https://opensourceeuropeb9a9bb69-oc-graphql-mcp.functions.fnc.pl-waw.scw.cloud/mcp

On first use the client opens a browser for OAuth; paste your own Open Collective personal token. Each user authenticates independently — no shared token lives on the server.

⚠️ Please don't overuse the community instance. It's a small, cost-shared community deployment that scales to zero when idle — provided so people whose tools can't do stdio can still connect, not for heavy or automated load. If you query a lot, need guaranteed availability, or want to control the region, run stdio locally (above) or self-host your own instead.

To run your own HTTP instance, see docs/self-hosting.md (Docker + configuration reference).

The three tools

The intended flow is learn, then execute:

  1. search_docs(query, top_k=5) — keyword (BM25) search over a baked corpus of the Open Collective GraphQL guides plus a curated map of the top-level query fields (the entry points). Use this first to figure out which queries and fields you need. Each hit carries a source_url linking back to its source — deep-linked to the exact section (#anchor) where the guide chunk has one.
  2. schema_lookup(name) — exact definition of a GraphQL type or query field: its description, fields, and arguments (name, type, required, default). Substring matches return candidate names.
  3. graphql_query(query, variables=None) — execute a read-only GraphQL query and return the JSON result. Mutations and subscriptions are rejected: every operation in the document is parsed and must be a query.

Further reading

  • Using with AI safely — the PII posture and safe field-selection guidance.
  • Self-hosting — run your own hosted HTTP server via Docker, plus the full configuration reference.
  • Scaleway deployment — step-by-step walkthrough for the hosted HTTP server on Scaleway.
  • Development — local dev setup, the docs-corpus pipeline, and the release process.

Stack & credits

MIT licensed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_for_ocp_graphql-0.6.0.tar.gz (250.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_for_ocp_graphql-0.6.0-py3-none-any.whl (146.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_for_ocp_graphql-0.6.0.tar.gz.

File metadata

  • Download URL: mcp_for_ocp_graphql-0.6.0.tar.gz
  • Upload date:
  • Size: 250.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_for_ocp_graphql-0.6.0.tar.gz
Algorithm Hash digest
SHA256 6a3e418e690f55dd848743b3bfae7e92e3b832f90bbc87dd4fefa2a64d257034
MD5 2132b65a71330c34b176b7043407d04b
BLAKE2b-256 6ffcc4384651fb1c890d439b1ee4e1a2a2dcb5875dbacf8c7332f26dba57558d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_for_ocp_graphql-0.6.0.tar.gz:

Publisher: release.yml on opensourceeurope/mcp-for-ocp-graphql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_for_ocp_graphql-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_for_ocp_graphql-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6911b9179a4cb98d6b389cc3e5117143bee6fbfe3c633afc2b9b63c91cc8edc4
MD5 f8c09e0ffc40dadc0a0bab0370692b19
BLAKE2b-256 6b611422c6a9107a377dca588638e62a523d951b920fcbbf0ef0299edc4654a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_for_ocp_graphql-0.6.0-py3-none-any.whl:

Publisher: release.yml on opensourceeurope/mcp-for-ocp-graphql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page