Asi opencollective
Query and interact with Open Collective's GraphQL API v2. Browse collectives, view budgets/transactions/expenses, manage memberships, submit expenses, and explore the open-source funding ecosystem.
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/opencollective" ~/.claude/skills/plurigrid-asi-opencollective && rm -rf "$T"
manifest:
skills/opencollective/SKILL.mdsource content
Open Collective
Query and manage Open Collective accounts, finances, and community data via their public GraphQL API v2.
Endpoint & Auth
- Endpoint:
https://api.opencollective.com/graphql/v2 - Unauthenticated: 10 req/min, public read-only
- Authenticated: 100 req/min — pass
headerPersonal-Token: <token> - Token creation:
https://opencollective.com/<your-slug>/admin/for-developers - Not available via API: Stripe/PayPal payment creation, captcha-protected operations
MCP Server Setup
Use
mcp-graphql to expose the OC API as MCP tools. With fnox-backed auth:
claude mcp add opencollective-graphql -- /bin/sh -c \ 'unset PYTHONPATH && \ ENDPOINT=https://api.opencollective.com/graphql/v2 \ HEADERS="{\"Personal-Token\":\"$(fnox get OPENCOLLECTIVE_TOKEN --age-key-file ~/.age/key.txt -c ~/v/instance-onboarding/fnox.toml)\"}" \ exec npx mcp-graphql'
Store your token:
fnox set OPENCOLLECTIVE_TOKEN <token> --age-key-file ~/.age/key.txt -c ~/v/instance-onboarding/fnox.toml
Quick Start
If
opencollective-graphql MCP server is available, use its query-graphql tool. Otherwise use curl.
query { account(slug: "webpack") { name stats { balance { valueInCents currency } } } }
Core Queries
| Query | Use When |
|---|---|
| Look up any account by slug |
| Search/browse collectives |
| Look up a fiscal host |
| Browse fiscal hosts |
| View submitted expenses |
| Single expense detail |
| View financial activity |
| View contributions/donations |
| General search (beta) |
| Current authenticated user |
| Sponsorship tier details |
| Explore ecosystem categories |
Core Mutations (all require auth)
| Mutation | Use When |
|---|---|
| Submit expense for reimbursement |
| Update existing expense |
| Approve/reject/pay expense |
| Create contribution/donation |
| Cancel recurring contribution |
| Comment on expense/update |
/ | Post update to collective |
| Invite someone to join |
/ | Follow/unfollow collective |
| Set up notifications |
| Apply collective to fiscal host |
| Create new collective |
/ | Manage sponsorship tiers |
Reference Guide
| Topic | File | Load When |
|---|---|---|
| Query Templates | | Need ready-to-use GraphQL queries |
| Mutation Templates | | Need to write/modify data |
| Schema Types | | Need type details for building queries |
| Weird Mutualism | | Exploring OC's mutualist ecosystem patterns |
Key Patterns
- Pagination: All collections use
/limit
, returnoffset
+totalCountnodes - Account refs:
,{slug: "x"}
, or{id: "uuid"}{legacyId: 123} - Amounts: Always
— divide by 100 for display{ valueInCents: Int, currency: String } - See
for full filtering examplesreferences/queries.md
Account Types
COLLECTIVE, ORGANIZATION, INDIVIDUAL, FUND, EVENT, PROJECT, HOST, VENDOR
Status Enums
- Expense:
→DRAFT
→UNVERIFIED
→PENDING
→APPROVED
→PROCESSING
(alsoPAID
,REJECTED
,ERROR
)CANCELED - Order:
,NEW
,PENDING
,ACTIVE
,CANCELLED
,REJECTED
,PAID
,ERROREXPIRED - Transaction type:
(in) /CREDIT
(out)DEBIT - Transaction kind:
,CONTRIBUTION
,EXPENSE
,ADDED_FUNDS
,HOST_FEE
,PAYMENT_PROCESSOR_FEEPLATFORM_FEE
Tips
subfields on accounts give quick financial summariesstats
lists financial contributorsmembers(role: [BACKER])
shows sponsorship levels;tiers
shows blog postsupdates
has website, twitter, github URLssocialLinks