Donately's Model Context Protocol (MCP) server. Wraps the Donately public developer documentation as a toolset that AI assistants (Claude, Cursor, etc.) can call when their users are integrating Donately.
This is the first of two planned MCP surfaces:
- Dev-docs MCP (this package) — read-only access to API reference, embeddable form docs, components docs, and integration guides. No auth; published openly.
- Customer-data MCP (planned, July 2026) — OAuth-scoped access to a nonprofit's own Donately account (donations, donors, campaigns, etc.). Will live in this repo too, behind a separate transport.
Point your client at the public Streamable HTTP endpoint:
https://mcp.donate.ly/mcp
For Claude Desktop / Cursor / any MCP-aware client, add it as an HTTP MCP server. No install, no auth, no configuration.
Useful for clients that only support stdio transport, or when you want to run the server entirely locally:
The package ships with the doc corpus baked in, so no network calls are made when you query it.
search_docs(query, limit?, category?)— keyword search across the corpusget_doc(path)— full Markdown body of a specific doclist_docs(category?)— enumerate available docs
category is one of api, form, components, integrations.
docs/ Build artifact — synced from dev-hub. DO NOT EDIT.
api/ /v2 REST API reference (one file per resource)
form/ dntly-form embeddable donation form
components/ dntly-components data-attribute UI library
integrations/ Per-integration guides (Stripe, Salesforce, …)
src/
mcp.ts createServer() factory; tool definitions
server.ts stdio entrypoint (bin)
server-http.ts Streamable HTTP entrypoint (Railway)
docs.ts doc loader + in-memory keyword search
scripts/
sync-docs.ts dntly-developer-hub MD → docs/ (run before publish)
convert-html-docs.ts HTML → MD bootstrap (writes into dev-hub)
The canonical Markdown corpus lives in dntly-developer-hub at
docs/markdown/, not in
this repo. To make a doc edit:
- Edit the Markdown file in dev-hub (
~/Sites/dntly-developer-hub/git-repo/docs/markdown/<area>/<slug>.md). - Commit the dev-hub change.
- From this repo, run
npm run sync-docsto copy the latest snapshot intodocs/. - Commit the resulting
docs/change here. - Push both repos.
npm publish runs sync-docs automatically via prepublishOnly, so the
published npm tarball always reflects the latest dev-hub corpus.
If the underlying HTML in dev-hub changes (rare — that's the human-readable
docs site), regenerate the canonical Markdown with npm run rebuild-corpus.
That writes docs/markdown/ in dev-hub from its HTML; commit dev-hub, then
sync back here.
Requires Node 20+.
npm install
npm run typecheck # type-check
npm run dev # HTTP entrypoint, auto-reload
npm run dev:stdio # stdio entrypoint, auto-reload
npm run build # tsc → dist/, chmods binEvery file has YAML frontmatter:
---
title: "Donations"
source: "api/index.html"
anchor: "donations"
---title— human-readable section titlesource— path insidedntly-developer-hubthat this MD was generated fromanchor— the original HTMLid, used for deep-linking back to the hub
The body is GitHub-flavored Markdown. API parameter tables are rendered as GFM tables; version-specific responses (v2019-03-15 vs v2022-12-15) are labeled inline.
MIT