Skip to content

Development

Logan Besecker edited this page Oct 1, 2026 · 1 revision

Development

Phoenix 1.8 and LiveView, on PostgreSQL.

mix setup
mix phx.server
mix test

CI rejects unformatted code, so run mix format before pushing.

Where things live

Module Responsibility
McpRegistry.Registry listings and the queries behind every page
McpRegistry.Registry.Manifest server.json ⇄ listing
McpRegistry.OfficialRegistry the mirror of the official registry
McpRegistry.Probe the MCP client that reads tools, prompts and resources
McpRegistry.Documents the llms.txt and AGENTS.md fetcher
McpRegistry.Changes changelog recording, and the rules on what is not a change
McpRegistry.Registry.Logo which logo a listing gets
McpRegistry.Registry.Clients each client's real configuration format
McpRegistryWeb.Submissions the one path every submission takes, so rate limits and auth stay consistent
McpRegistryWeb.MCP.Tools the MCP tools — their descriptions are read by models, so keep them precise

Conventions

  • Styling: Tailwind with semantic tokens only — bg-canvas, text-ink, border-rule, bg-brand. No dark: variants and no hard-coded colours; the tokens carry both themes.
  • Analytics: only through McpRegistry.Analytics.track/2, and never with request parameters, search text or credentials in an event.
  • Listing origin (local, seed, official) is never set from user input.
  • External HTTP in tests goes through Req.Test stubs; nothing in the suite touches the network.
  • One change, one issue, one branch, one pull request.

Licence

Apache 2.0.

Clone this wiki locally