Status as of 2026-05-10: Featherless is code-ready for the Prompt Opinion path, but it is not submission-complete until the deployed project is published to the Prompt Opinion Marketplace, invokable inside Prompt Opinion, and the Devpost form includes the Marketplace URL plus the public demo video URL.
- Hackathon rules: the official deadline is 2026-05-11 23:00 EDT, while Featherless keeps the stricter internal target of 2026-05-11 18:00 Europe/Rome. The submission must include a feature description, a Prompt Opinion Marketplace URL, and a public YouTube/Vimeo/Youku video under three minutes that shows Featherless functioning inside Prompt Opinion.
- Stage One pass/fail: the project must be Marketplace verified, implement MCP or A2A, be discoverable/invokable directly in Prompt Opinion, and use only synthetic or de-identified data.
- Prompt Opinion MCP path: add the MCP endpoint under
Configuration -> MCP Servers; the MCP initialize response must declareai.promptopinion/fhir-context; Prompt Opinion sendsX-FHIR-Server-URL,X-FHIR-Access-Token, andX-Patient-IDon tool calls. - Prompt Opinion external-agent path: add the AgentCard URL under
Agents -> External Agents; the URL normally ends in/.well-known/agent-card.json; the agent is invoked from a BYO Agent throughConsult with another agent. - Prompt Opinion A2A FHIR context: the AgentCard declares
https://app.promptopinion.ai/schemas/a2a/v1/fhir-context; runtime messages carryfhirUrl,fhirToken, andpatientIdin message metadata.
Sources: Devpost rules, Prompt Opinion MCP FHIR context, Prompt Opinion External Agents, Prompt Opinion A2A FHIR context, Prompt Opinion FHIR overview.
- The orchestrator no longer has a production localhost MCP default. It now uses the Cloudflare service binding
FEATHERLESS_MCPby default, bound to the deployed MCP Worker servicefeatherless-mcp. An explicitly configured HTTPSFEATHERLESS_MCP_URLis only a fallback for deployments that cannot use Cloudflare service bindings. - The orchestrator fails fast if a public request tries to use a loopback MCP URL or if no MCP target is configured.
- The default MCP Worker deploy no longer carries placeholder D1/Vectorize bindings. Optional memory is disabled by default with
MEM0_DISABLED=1, so Cloudflare deploy is not blocked byREPLACE_WITH_D1_ID. - The visit-context packer reuses raw resources fetched by
aggregateClinicalContext()instead of refetching Patient, MedicationRequest, Condition, vitals, and labs. - Care-team closure date math now tolerates missing or invalid encounter dates and still emits valid date-shaped FHIR fields.
- Patient-packet generation remains Workers AI only. No external LLM provider keys are required or configured.
The hackathon workflow ships with MEM0_DISABLED=1, so MemoryClient.fromEnv() never requires Cloudflare Vectorize or D1. If an operator later changes MEM0_DISABLED to 0, restore all memory bindings before deploy:
ai.binding = "AI"inwrangler.jsoncvectorizebinding namedMEMORY_INDEX, usually pointing at indexfeatherless-memoryd1_databasesbinding namedMEMORY_METAwith a realdatabase_id, notREPLACE_WITH_D1_ID- remote migration run through
npm run db:migrate:remote
Without MEMORY_INDEX and MEMORY_META, MemoryClient.fromEnv() intentionally returns null and the memory tools do not register.
-
Authenticate Cloudflare locally:
npx wrangler login npx wrangler whoami
Completed on 2026-05-10 for
Inf3ctious007@gmail.com's Account(2a6a96ae8f3d1a965febebb24df965f4). -
Deploy the MCP Worker first:
npm run deploy
Confirmed public endpoint:
https://featherless-mcp.inf3ctious007.workers.dev/mcp. -
Deploy the orchestrator Worker second:
npm run deploy:orchestrator
Confirmed public AgentCard:
https://featherless-orchestrator.inf3ctious007.workers.dev/.well-known/agent-card.json. -
Confirm the deployed orchestrator can reach the deployed MCP Worker through the Cloudflare service binding in
wrangler-orchestrator.jsonc:FEATHERLESS_MCP -> featherless-mcp. This is preferred overFEATHERLESS_MCP_URLbecause the call stays Worker-to-Worker inside Cloudflare. If using a different Cloudflare account or deployment shape where service binding is impossible, setFEATHERLESS_MCP_URL=https://featherless-mcp.inf3ctious007.workers.dev/mcp; never uselocalhostor127.0.0.1for judging. -
Use a synthetic FHIR server reachable from Cloudflare Workers and Prompt Opinion. Local HAPI at
127.0.0.1:8080is valid for tests only. For judging, either use Prompt Opinion's workspace FHIR context if it supports loading the synthetic patient, or expose a no-PHI HAPI instance over HTTPS and load the hero bundle:FHIR_SERVER_URL=https://<synthetic-fhir-host>/fhir npx tsx scripts/load-hero.ts
-
Register the deployed MCP endpoint in Prompt Opinion and accept the FHIR extension/scopes.
-
Register the deployed AgentCard in Prompt Opinion and enable the FHIR context extension.
-
Create or open a BYO Agent, make sure it can use the Featherless MCP server, then invoke the external Featherless agent through
Consult with another agent. -
Publish the configured project to the Prompt Opinion Marketplace and copy the resulting Marketplace URL. Public docs verified the requirement, but did not expose a step-by-step Marketplace publishing UI. If the publish control is not visible after workspace registration, ask Prompt Opinion support/Discord immediately and provide the two deployed URLs plus proof that the project is invokable in a workspace. Time-box support waiting to 15 minutes; if there is no response, continue recording with workspace registration proof, add a README limitations note that Marketplace publication is pending platform support, and copy the Marketplace URL if it becomes available later.
-
Capture proof screenshots:
docs/sharp-proof/01-network-tab.png- deployed MCP tool call with SHARP headers and redacted token.docs/sharp-proof/02-po-listing.png- Prompt Opinion workspace listing for MCP server and external agent.docs/sharp-proof/03-trace.png- Featherless trace from the Prompt Opinion invocation.
-
Record the final video under three minutes, publicly visible on YouTube/Vimeo/Youku, with no copyrighted music or unauthorized third-party marks.
-
Submit Devpost with:
- text description of Featherless features and functionality,
- GitHub PR/repo URL,
- Prompt Opinion Marketplace URL,
- public demo video URL,
- testing instructions pointing to
docs/po-registration.md.
Run this once after any final changes:
npm run typecheck
npm run lint
npm test
npx wrangler deploy --dry-run
npx wrangler deploy --config wrangler-orchestrator.jsonc --dry-runAlso run the legacy product-name scrub and external-model scan from the maintainer checklist. The expected legacy-name output is empty, and the production patient-packet path must remain workers_ai.