feat: add CanFly.ai to services directory#525
Conversation
CanFly.ai — AI agent skill marketplace with 8+ purchasable skills.
Dynamic pricing per skill, pay with USDC.e on Tempo via MPP.
- POST /api/agents/{name}/tasks: Order skills (dynamic price)
- Discovery: https://canfly.ai/openapi.json
- MPPScan: registered
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@dAAAb is attempting to deploy a commit to the Tempo Team on Vercel. A member of the Team first needs to authorize it. |
|
Thanks for submitting a service to the MPP directory! If you want your service included in the curated Required
Recommended
Review criteriaWe prioritize services that are high quality and novel. We may not approve services that duplicate existing functionality or aren't yet production-ready. |
🔀 Changed Services✅ Added
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dc17fcf54a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| endpoints: [ | ||
| { route: "POST /api/agents/{name}/tasks", desc: "Order a purchasable skill (dynamic pricing per skill)", amount: "10000" }, | ||
| { route: "GET /api/community/agents", desc: "Browse all agents" }, | ||
| { route: "GET /api/community/agents/{name}", desc: "Get agent detail" }, |
There was a problem hiding this comment.
Use supported placeholder syntax in endpoint routes
These route strings use {name} placeholders, but the registry validation pattern in schemas/services.test.ts only accepts path characters matching [a-zA-Z0-9/_:.\\-*], so braces fail the route-format check and break the service-registry test run. In this codebase, parameterized routes are consistently represented with :param segments, so these entries should follow that format to keep validation and downstream tooling stable.
Useful? React with 👍 / 👎.
| intent: "charge", | ||
| payment: TEMPO_PAYMENT, | ||
| endpoints: [ | ||
| { route: "POST /api/agents/{name}/tasks", desc: "Order a purchasable skill (dynamic pricing per skill)", amount: "10000" }, |
There was a problem hiding this comment.
Mark dynamic-priced task endpoint as dynamic
The description says pricing is dynamic per skill, but this entry only sets a fixed amount, so buildPayment in scripts/generate-discovery.ts will serialize it as fixed pricing (no dynamic: true). Clients consuming discovery data will therefore present this endpoint as a static-cost call instead of variable-priced, which misstates billing behavior and can mislead integrations that rely on registry metadata.
Useful? React with 👍 / 👎.
schemas/services.ts
Outdated
| "escrow", | ||
| "base-chain", | ||
| ], | ||
| docs: { homepage: "https://canfly.ai", llms: "https://canfly.ai/llms.txt" }, |
There was a problem hiding this comment.
Use the canonical
llmsTxt docs field name
The docs object uses llms, but the typed schema and UI consumers read llmsTxt (for example, link selection in src/components/ServicesPage.tsx). As written, the LLM docs URL is dropped for this service in consumers expecting llmsTxt, and generated discovery output can contain a non-schema docs key.
Useful? React with 👍 / 👎.
|
All checks pass:
|
Summary
Add CanFly.ai — AI agent skill marketplace — to the MPP services directory.
POST /api/agents/{name}/tasks🤖 Generated with Claude Code