# Registries

Submit these after `https://ipa.raymati.com` answers on the public internet. Do not submit from a build, a test, or this repository.

The score contract does not depend on any directory listing. Directory forms for Claude, ChatGPT, Smithery, Glama, PulseMCP, and mcp.so are in [Submitting](/docs/submitting.md). This page is the official MCP registry and APIs.guru.


## MCP Registry

The registry is a preview. The published schema can still break. Do not publish from this repository.

- Authentication: <https://modelcontextprotocol.io/registry/authentication>
- Quickstart: <https://modelcontextprotocol.io/registry/quickstart>
- Remote servers: <https://modelcontextprotocol.io/registry/remote-servers>
- Default registry: `https://registry.modelcontextprotocol.io`

The name is `com.raymati/ipa`. DNS domain verification for `raymati.com` grants `com.raymati.*/*`. A GitHub login would be the `io.github.*` namespace, which is the wrong namespace for this name. Do not invent a GitHub login to fill a placeholder.

`https://ipa.raymati.com/mcp` has to be reachable on the public internet before publish. The document this host already serves is [/server.json](/server.json):

```json
{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "com.raymati/ipa",
  "description": "Score a Koine Greek attempt. Tools score, heard_as, recognize, and create_upload.",
  "version": "0.2.0",
  "remotes": [
    {"type": "streamable-http", "url": "https://ipa.raymati.com/mcp"}
  ]
}
```

`remotes[0].type` is `streamable-http`. There is no legacy SSE endpoint.

### DNS proof

The TXT record goes on the apex of `raymati.com`. A selector such as `_mcp-auth` or `_mcp-registry` is never read.

1. Ed25519 needs OpenSSL 3: `openssl genpkey -algorithm ED25519`.
2. Publish this TXT record on the apex (the public key is the one from that keypair; do not commit the private key):

```text
v=MCPv1; k=ed25519; p=<PUBLIC_KEY>
```

3. `mcp-publisher login dns --domain raymati.com --private-key HEX_KEY`
4. `mcp-publisher publish` with the path to `server.json`.

`--registry` is a flag on `login`, not on `publish`. Leave it unset to use `https://registry.modelcontextprotocol.io`.

HTTP alternative: host the same record at `https://raymati.com/.well-known/mcp-registry-auth` and run `mcp-publisher login http`.

On rotation, remove the stale `MCPv1` TXT records. Anthropic's connector directory does not use this DNS proof. That proof is only for the official MCP registry.


## APIs.guru

They aggregate an OpenAPI document. They do not host it. They fetch the URL again later, so the document has to stay at that address.

- Form: <https://apis.guru/add-api>
- Rules: <https://github.com/APIs-guru/openapi-directory/blob/main/CONTRIBUTING.md>

Submit `https://ipa.raymati.com/openapi.json` after deploy.

- The API is public, the URL is persistent, and the description is useful to someone who is not the author.
- Format: OpenAPI.
- Official definition: yes. This repository is the source of `openapi.yaml`.

## Optional llms.txt lists

<https://llmstxt.org/> is the convention. Community directories that scrape `/llms.txt` are informal. Listing the origin there is optional and is not part of the protocol. One public example is <https://llmstxt.site/>. Treat any such form as a courtesy copy, not a registry of record.
