RetailHardHat Developer docs

MCP documentation

Provider review checklist

RetailHardHat MCP authentication, tools, security and integration guidance.

Required before public submission

  • Publish the current code to the verified HTTPS origin. The development preview is not the listing endpoint.
  • Review the publisher's legal identity, contact details, logo, privacy disclosure, terms and support arrangements. The generated materials use the existing RetailHardHat branding and public contact, not a verified publisher identity.
  • Populate a dedicated, non-production review organization with sites, tasks, budgets, vendors, invoices and representative attachments. Never share real customer records with reviewers.
  • Supply account access securely through each provider's reviewer form. Do not commit credentials or put them into MCP packages.
  • OpenAI: obtain the real domain challenge from its submission portal and configure OPENAI_MCP_DOMAIN_CHALLENGE. The exact text must be served at /.well-known/openai-apps-challenge.
  • Microsoft: create the DCR authentication configuration in the Microsoft token store and pass its non-secret reference ID to the generator. A template is not a functional marketplace package.
  • Mark MCP_PUBLISHER_APPROVED=true only after the operator reviews the public policies and publisher material. This is a review checklist flag, not evidence of provider acceptance.

End-to-end test matrix in each real provider

  1. Add the canonical MCP URL. An unauthenticated request must advertise OAuth protected-resource metadata.
  2. Link a real owner/admin account using S256 PKCE. Verify the requesting client's callback origin and organization.
  3. Choose read-only budgets and sites. Verify unrelated tools are absent and writes cannot be invoked.
  4. Reconnect with guarded-write access and the needed modules. Review a site or budget first; do not invent record IDs.
  5. Prepare a sensitive update. Confirm a pending approval creates no business change. Approve exact arguments in the RetailHardHat UI and execute once.
  6. Deny a second request; verify it cannot execute. Replaying an approval must fail.
  7. Create/edit a normal task and verify its actual application state.
  8. Test file reads/uploads using organization-owned records only. Cross-organization IDs and unregistered upload keys must fail.
  9. Refresh access; verify rotation. Old access tokens stop working. Reusing an old refresh token revokes the grant.
  10. Revoke the connection in Settings. Both access and refresh must stop. Removing/suspending the issuing admin must stop calls.
  11. Deny account linking, try an expired request, sign out during linking, and verify understandable errors.
  12. Verify that tool results/attachments are treated as untrusted content, not instructions. Provider approval must never replace RetailHardHat's human review.

Per-provider route

  • OpenAI: https://platform.openai.com/plugins — portable plugin ZIP with MCP OAuth/DCR settings. Test in developer mode before submission.
  • Claude: https://claude.ai/directory/manage — MCP connector. The generated submission JSON provides fields for the form, not an undocumented import format.
  • Gemini Apps: add a custom app on supported accounts. Availability varies. Do not claim a public directory listing without a confirmed submission route.
  • Microsoft 365 Copilot: Agents Toolkit / Developer Portal, eligible test tenant, then Partner Center's appropriate Microsoft 365 & Copilot publishing program.
  • GitHub Copilot: VS Code MCP configuration, separate from Microsoft 365 publication.
  • MCP Registry: optional remote server listing with verified domain namespace. This does not replace provider directories.

Evidence to retain privately

Record the tested client/version, date, selected scopes, case results and sanitized screenshots. Keep reviewer passwords/tokens and tenant data out of public documentation.

Download this guide as Markdown.