addrbookFor publishers
← The evidence ledger

Evidence row 3363890

Observed , by sync.mcp_registry/1.

Kind
listing
About
source_record mcp_registry:io.github.thyn-ai/codna
Recorded
Previous row
#3149898
Body SHA-256
d929a6153000143610768c4b7bee544c1280f005b9be1ad99663fdad9975f4c1
Leaf
0x242450e032d188f20bb1154db1a67fc3117db1aafe56ceefc92e83d3874820de

What was observed

{
  "endpoints": [
    [
      "web",
      "https://codna.ai/"
    ]
  ],
  "name": "Codna — repository intelligence",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-11-05T05:57:28.942886Z",
        "status": "active",
        "statusChangedAt": "2026-11-05T05:57:28.942886Z",
        "updatedAt": "2026-11-05T05:57:28.942886Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Repo intelligence: triage, fix PRs, SARIF reachability, recall. Free codna login to execute.",
      "name": "io.github.thyn-ai/codna",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "Provider key for codna_fix's planner — any one of ANTHROPIC_API_KEY (Anthropic), OPENAI_API_KEY (OpenAI/ChatGPT), or GEMINI_API_KEY (Gemini) works (or store one with `codna key set <provider>`). Every tool also requires the one-time free `codna login` device authorization before executing; introspection (initialize/tools/list) needs no credentials.",
              "isSecret": true,
              "name": "ANTHROPIC_API_KEY"
            },
            {
              "description": "Alternative provider key (OpenAI/ChatGPT) for codna_fix's planner — see ANTHROPIC_API_KEY.",
              "isSecret": true,
              "name": "OPENAI_API_KEY"
            },
            {
              "description": "Alternative provider key (Gemini) for codna_fix's planner — see ANTHROPIC_API_KEY.",
              "isSecret": true,
              "name": "GEMINI_API_KEY"
            },
            {
              "description": "Write token, only for codna_fix with open_pr=true (opens a pull request) and codna_report_bug (files an issue).",
              "isSecret": true,
              "name": "GITHUB_TOKEN"
            },
            {
              "description": "Codna key from the one-time free `codna login` (device authorization, free community license). Required to execute any of the five tools; introspection (initialize/tools/list) needs none.",
              "isSecret": true,
              "name": "CODNA_API_KEY"
            }
          ],
          "identifier": "codna",
          "packageArguments": [
            {
              "description": "Run the Codna MCP stdio server (`codna mcp`).",
              "type": "positional",
              "value": "mcp"
            }
          ],
          "registryType": "pypi",
          "transport": {
            "type": "stdio"
          },
          "version": "0.2.98"
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/thyn-ai/codna-cli"
      },
      "title": "Codna — repository intelligence",
      "version": "0.2.98",
      "websiteUrl": "https://codna.ai"
    }
  },
  "source": "mcp_registry",
  "summary": "Repo intelligence: triage, fix PRs, SARIF reachability, recall. Free codna login to execute."
}

What the leaf hashes

{"body":"d929a6153000143610768c4b7bee544c1280f005b9be1ad99663fdad9975f4c1","id":3363890,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793859678024218,"prev":3149898,"subject":"mcp_registry:io.github.thyn-ai/codna","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (322504 rows).

  1. 0x24244ab598533185518f6f3baadaa3cfad0a6851a60e88170085053d1842dc40
  2. 0x721e89e5131747449f7412f8f0b28194a77299fef9f273438a0b0e05d5218048
  3. 0xc4567066e9ce3ad951f654fc3563f9d4d62773303330e4f0e499e66ce9ea5061
  4. 0x2305f902bccc02e8cf6cad67b4ca8b6bd415ca8a99cd21b59fcedfdb25a2cf2f
  5. 0x7c17bbc7c23a534304ed6ddb9b88979178bbb757a0836881cfd94a203785835e
  6. 0xb55869386df39e2398827c5201646f079349279e8bbd767ea88ef1f37941d062
  7. 0xcdbe560556dc832e57ce2e88a8c02ae97fa5bf7a30132b86508adb1fc2bdc382
  8. 0x96e12a0cca90b50854150f9a6bfa822c3534811df075f98d15646cb94282d702
  9. 0xf5bb8ec2fab3df2defdc87603b0d81674c8a2c44a6dc59e1290018f087498d86
  10. 0x24ebfa0f02b85a63f45240b1b0680dd805e686d6f5597a04f6483f1b9c110b1a
  11. 0x400ca0fa0e34740b6a801d81a7bcf4fef28223c8c1a3ecf94d025d14996e26e9
  12. 0x59629c52076511e669decabcf5b3d1235bc552fa2e3311cf7bc8d47695838608
  13. 0xf881b2fb6613a30f4570fa246abbc6d3a5224df3e6758a80cf8c77228624523a
  14. 0x492a5126036ee8aafa91dc608819dbc168a2d5480dc97bd15c3ed39b7796b0bd
  15. 0x7c0ecb381cdd978337dc5ff40a1a1db43aaef42628e17d5c85ef5bf173d90fbe
  16. 0x0009f1567d5c3f52d167d3c95d53c71fb66114fc26e83679b452d6db2f1d0b95
  17. 0x0cdf39687556f127f9de2f03ec7df8e10e613bf9487760cbe3eaaaa02d8d48b4
  18. 0xa9caf228b42660818160afb416ff04cb014f57c4d8ee75ea3452fb76c3d8c645
  19. 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
Day root
0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
Chained
0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
Published
On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94

How to check it · This row as JSON