Repository navigation
Add the deed.page adapter - #1327
Conversation
|
👋 Welcome, @f-o-x11, and thanks for opening your first PR on AnythingMCP! A few quick pointers:
Someone from the core team will look at this within ~48h. If you don't hear back, please ping us in Discussions / Q&A. ⭐ While you wait — if you find AnythingMCP useful, a star helps others discover it. |
|
All contributors have signed the CLA ✍️ ✅ |
|
I have read the CLA Document and I hereby sign the CLA |
helpcodeai
left a comment
There was a problem hiding this comment.
Thanks @f-o-x11, and thanks for disclosing that you work on deed.page. The adapter is well made: we found no security issues (the SVG is clean, the live suite only runs behind RUN_DEED_PAGE_LIVE=1), and switching off delete, domain removal and token rotation/revocation by default is the right call. The "show the user and wait for a yes" wording in the publish tools is good too.
Before we can merge, we need a few changes. Catalog adapters have to serve the user of the workspace, not the vendor's sales funnel:
- Switch off by default
deed_page_get_upgrade_link,deed_page_claim_share_creditanddeed_page_set_badge("enabled": false, like the delete tools). Please also remove from the snapshot description ofget_upgrade_linkthe sentence that lets the agent complete the payment itself. An administrator can still switch these tools on when they actually want them. - Remove the attribution parameters
via,heard_fromandhow_heardfrom the parameter schemas of the snapshot tools (publish_site,update_site,finalize_upload,get_upgrade_link, wherever they appear). Please extend your static spec so that tool discovery doesn't bring them back. - In the instructions, keep one sentence on the paid plans (limits and where to upgrade) for when a plan limit error appears, without directing the agent toward an upgrade.
- Rebase on
mainonce #1329 (Immich) is in. The quoted counts will then be 564, so please rerunnode scripts/adapter-count.mjs --checkandnode scripts/generate-llms-txt.mjs.
Publish and update can stay on by default, since they are the point of the connector.
- Install deed_page_get_upgrade_link, deed_page_claim_share_credit and deed_page_set_badge switched off, like the delete tools, and drop the sentence in get_upgrade_link that let the agent complete the payment. - Remove via, heard_from and how_heard from the snapshot schemas and list them in a new per-tool omitParameters policy, which mergeDiscoveredMcpTools applies at install and on Discover tools so the server's schema cannot bring them back. Documented in docs/tool-definition.md. - Keep a single neutral sentence on paid plans, for plan-limit errors. - Static spec: pins the new switched-off set, the omitted parameters through discovery, and the plan sentence; mcp-adapter.spec covers omitParameters.
Ran node scripts/adapter-count.mjs and node scripts/generate-llms-txt.mjs after merging main (HelpCode-ai#1329).
|
Thanks for the careful review. All four points are addressed in 401291a:
The deed.page adapter spec passes locally (the live tests stay skipped without |
helpcodeai
left a comment
There was a problem hiding this comment.
Thanks @f-o-x11, all four points are done, and omitParameters is a clean way to keep vendor fields out of the schema. CI is green. Merging.
Summary
Adds a connector for deed.page, static hosting that AI agents can publish to. The adapter bridges deed.page's own remote MCP server (
https://deed.page/mcp) the same way the other MCP-type adapters do. That lets an AnythingMCP workspace give Claude or ChatGPT a way to put a generated page online athttps://<slug>.deed.page/, with OAuth, per-tool roles and the audit log in front of it.This PR comes from the deed.page team. Disclosure: I work on deed.page.
Changes
intl/deed-page.json: an MCP connector with a BearerDEED_PAGE_TOKENcredential and a snapshot of the 27 tools the server lists today, prefixeddeed_page_.agent_seats. Rotating through the connector would break the stored credential, and creating a seat returns a fresh token to the model. The instructions explain why and how to turn them on.intl/deed-page.live.spec.ts: static conformance checks (prefixing, described parameters, which tools are off, and that this stays true after tool discovery). It also has a live suite gated behindRUN_DEED_PAGE_LIVE=1that compares the snapshot with the server's tool list and runs publish, read back as the owner, delete, then checks for a 404.catalog.ts, updated quoted counts (562 to 563 adapters) and regeneratedllms.txt/llms-full.txt.Type
Testing
All commands were run from the repo root unless noted, on Node 24 after
npm ci:node scripts/validate-adapters.mjs --warn: 577 passed, 0 failed, with no warnings fordeed-page.node scripts/regenerate-catalog.mjs: 577 adapters across 15 regions.node scripts/adapter-count.mjs --check: OK, every quoted count equals 563 adapters (27 keyless, 8708 tools).node --test scripts/validate-adapters.test.mjs scripts/generate-llms-txt.test.mjs: 44 passed.In
packages/backend,RUN_DEED_PAGE_LIVE=1 npx jest src/adapters/intl/deed-page.live.spec.ts: 11 passed. That includes the live publish, read, delete and 404 round trip against deed.page. The test site is removed at the end.In
packages/backend,npx jest src/adapters/catalog: 4 suites, 10704 tests passed.In
packages/backend,npx jest src/adapters/mcp-adapter src/adapters/setup-guide src/adapters/env-var-meta src/adapters/adapters.service: 108 passed.Added/updated unit tests
Tested manually (describe steps below)
No tests needed (explain why)
Checklist
npm test). I ran the adapter and catalog suites above, not the full backend suite.Related Issues
None. Links: https://deed.page, docs at https://deed.page/docs, and the agent skill at https://github.com/f-o-x11/deed-page-skill.