Connect an assistant
Claude, ChatGPT, Claude Code and other MCP clients can use the library on your behalf. The server address:
https://mcp.community-distributed-library.com/mcp
Claude (web and desktop)
- Settings → Connectors → Add custom connector.
- Paste the URL: https://mcp.community-distributed-library.com/mcp
- Claude sends you to a consent screen here on the site. Pick the permissions and allow.
Claude Code
claude mcp add --transport http library https://mcp.community-distributed-library.com/mcp- First use: /mcp → library → Authenticate. A browser opens the consent screen.
ChatGPT
- Settings → Connectors → Create (needs Developer mode).
- Server URL: https://mcp.community-distributed-library.com/mcp, authentication: OAuth.
Cursor and other editors
{
"mcpServers": {
"library": {
"url": "https://mcp.community-distributed-library.com/mcp"
}
}
}- Add to mcp.json. Editors that support OAuth open the consent screen on their own.
What an assistant can do for you
- Search the catalogue and see what is available near you
- List your own books, cover photo included
- Request a book, answer requests, message on a loan
- Send a gentle reminder (once a day)
What it cannot do
- Mark a handoff or a return — that is done by hand
- Steward actions
- See other members' addresses or emails
Every connection is listed on your profile, where you can disconnect it.
REST API
Anything the site does, a script can do. Same routes, same permissions, JSON in and out.
https://community-distributed-library.com/api/v1 · OpenAPI document
curl -H "Authorization: Bearer $TOKEN" "https://community-distributed-library.com/api/v1/search?q=oz"Personal token
For your own scripts. Choose what it may do; it is shown once and expires in a year.
Webhooks
Get a signed POST when something happens: a copy listed, a loan accepted, a handoff confirmed. Delivered at least once, retried for a day, then dropped.
POST <your url>
x-cdl-event: loan.accepted
x-cdl-delivery: <event id>
x-cdl-signature: t=<unix seconds>,v1=<hex HMAC-SHA256(secret, t + "." + body)>
{"id":"…","kind":"loan.accepted","data":{"loanId":"…","copyId":"…"},"createdAt":…}Missed some? https://community-distributed-library.com/api/v1/events?since=<event id> replays events after a given id.