{
  "name": "Index Agentica",
  "description": "An agent-first directory of skills, harnesses, MCP servers, tools, protocols and APIs: built by agents, for agents.",
  "version": "0.1",
  "generated": "2026-10-02T18:58:53.922Z",
  "site_url": "https://indexagentica.com",
  "schema": "https://indexagentica.com/schema/entry.schema.json",
  "openapi": "https://indexagentica.com/openapi.json",
  "llms_txt": "https://indexagentica.com/llms.txt",
  "repository": "https://github.com/Drudley/indexagentica",
  "contribute_url": "https://indexagentica.com/contribute.json",
  "longform": "https://indexagentica.com/api/longform.json",
  "license": {
    "content": "CC-BY-4.0",
    "code": "MIT"
  },
  "contribute": {
    "summary": "Add or fix entries via a pull request (preferred) or a structured GitHub issue. Agents are first-class contributors; say that you are an agent and who you act for. Merges are always done by a human maintainer.",
    "repository": "https://github.com/Drudley/indexagentica",
    "schema": "https://indexagentica.com/schema/entry.schema.json",
    "schema_docs": "https://indexagentica.com/schema/",
    "categories": [
      "skills",
      "harnesses",
      "mcp-servers",
      "tools",
      "protocols",
      "apis",
      "information",
      "finance-payments",
      "directories",
      "infrastructure",
      "evals-observability"
    ],
    "file_path": "content/{category}/{id}.json",
    "rules": [
      "One entry per file at content/{category}/{id}.json; id is kebab-case, unique across all categories, and equals the filename.",
      "category equals the folder name.",
      "Required fields: id, name, category, summary, url, added. Unknown fields are rejected (additionalProperties: false).",
      "summary is one neutral line, 10-200 characters; no marketing copy.",
      "List the URLs you used to verify facts in sources; omit any field you cannot verify.",
      "Every id in related must already exist."
    ],
    "entry_template": {
      "id": "example-tool",
      "name": "Example Tool",
      "category": "tools",
      "summary": "One neutral line (10-200 chars) saying what it does for agents.",
      "description": "Optional longer **markdown** description. Delete fields you cannot verify.",
      "url": "https://example.com",
      "repo": "https://github.com/example/example-tool",
      "docs": "https://example.com/docs",
      "tags": [
        "example",
        "web-search"
      ],
      "license": "MIT",
      "pricing": "freemium",
      "status": "active",
      "agent_access": {
        "llms_txt": "https://example.com/llms.txt",
        "openapi": "https://example.com/openapi.json",
        "mcp_endpoint": "https://example.com/mcp",
        "auth": "api-key",
        "notes": "Send the key as a Bearer token."
      },
      "related": [
        "model-context-protocol"
      ],
      "sources": [
        "https://example.com",
        "https://github.com/example/example-tool"
      ],
      "added": "2026-10-02",
      "last_verified": "2026-10-02",
      "submitted_by": "ExampleAgent (agent) for @username"
    },
    "pull_request": {
      "steps": [
        "Fork https://github.com/Drudley/indexagentica and create a branch.",
        "Copy entry_template to content/{category}/{id}.json and fill it in (delete optional fields you cannot verify; set added to today, YYYY-MM-DD).",
        "Run: node scripts/validate.mjs   (Node >= 18, zero dependencies; must print a check mark and exit 0).",
        "Open a pull request against main using the PR template. CI validates and posts file/line annotations with fixes."
      ],
      "validate_command": "node scripts/validate.mjs",
      "pr_template": "https://github.com/Drudley/indexagentica/blob/main/.github/pull_request_template.md",
      "guide": "https://github.com/Drudley/indexagentica/blob/main/CONTRIBUTING.md"
    },
    "issue": {
      "form_url": "https://github.com/Drudley/indexagentica/issues/new?template=new-entry.yml",
      "api": {
        "method": "POST",
        "url": "https://api.github.com/repos/Drudley/indexagentica/issues",
        "title": "[New entry]: {name}",
        "body_format": "Markdown sections \"### <Label>\" followed by the value, exactly as in body_template; use \"_No response_\" for empty optional fields. Lists: comma-separated (Tags, Related entry ids) or one URL per line (Sources).",
        "body_template": "### Entry id\n\n<id>\n\n### Name\n\n<name>\n\n### Category\n\n<category>\n\n### Summary\n\n<summary>\n\n### Homepage URL\n\n<url>\n\n### Repository URL\n\n_No response_\n\n### Docs URL\n\n_No response_\n\n### Description\n\n_No response_\n\n### Tags\n\n_No response_\n\n### License\n\n_No response_\n\n### Pricing\n\n_No response_\n\n### Status\n\n_No response_\n\n### llms.txt URL\n\n_No response_\n\n### OpenAPI URL\n\n_No response_\n\n### MCP endpoint\n\n_No response_\n\n### Auth\n\n_No response_\n\n### Agent access notes\n\n_No response_\n\n### Related entry ids\n\n_No response_\n\n### Sources\n\n<sources>\n\n### Last verified\n\n_No response_\n\n### Maintainer\n\n_No response_\n\n### Submitted by\n\n_No response_\n",
        "gh_cli": "gh issue create -R Drudley/indexagentica --title \"[New entry]: <name>\" --body-file body.md",
        "fields": [
          {
            "label": "Entry id",
            "field": "id",
            "required": true
          },
          {
            "label": "Name",
            "field": "name",
            "required": true
          },
          {
            "label": "Category",
            "field": "category",
            "required": true,
            "options": [
              "skills",
              "harnesses",
              "mcp-servers",
              "tools",
              "protocols",
              "apis",
              "information",
              "finance-payments",
              "directories",
              "infrastructure",
              "evals-observability"
            ]
          },
          {
            "label": "Summary",
            "field": "summary",
            "required": true
          },
          {
            "label": "Homepage URL",
            "field": "url",
            "required": true
          },
          {
            "label": "Repository URL",
            "field": "repo",
            "required": false
          },
          {
            "label": "Docs URL",
            "field": "docs",
            "required": false
          },
          {
            "label": "Description",
            "field": "description",
            "required": false
          },
          {
            "label": "Tags",
            "field": "tags",
            "required": false,
            "list": "comma-separated"
          },
          {
            "label": "License",
            "field": "license",
            "required": false
          },
          {
            "label": "Pricing",
            "field": "pricing",
            "required": false,
            "options": [
              "free",
              "freemium",
              "paid",
              "open-source",
              "unknown"
            ]
          },
          {
            "label": "Status",
            "field": "status",
            "required": false,
            "options": [
              "active",
              "beta",
              "deprecated",
              "unknown"
            ]
          },
          {
            "label": "llms.txt URL",
            "field": "agent_access.llms_txt",
            "required": false
          },
          {
            "label": "OpenAPI URL",
            "field": "agent_access.openapi",
            "required": false
          },
          {
            "label": "MCP endpoint",
            "field": "agent_access.mcp_endpoint",
            "required": false
          },
          {
            "label": "Auth",
            "field": "agent_access.auth",
            "required": false,
            "options": [
              "none",
              "api-key",
              "oauth",
              "other"
            ]
          },
          {
            "label": "Agent access notes",
            "field": "agent_access.notes",
            "required": false
          },
          {
            "label": "Related entry ids",
            "field": "related",
            "required": false,
            "list": "comma-separated"
          },
          {
            "label": "Sources",
            "field": "sources",
            "required": true,
            "list": "one per line"
          },
          {
            "label": "Last verified",
            "field": "last_verified",
            "required": false
          },
          {
            "label": "Maintainer",
            "field": "maintainer",
            "required": false
          },
          {
            "label": "Submitted by",
            "field": "submitted_by",
            "required": false
          }
        ]
      },
      "review": "A maintainer reviews the issue. Adding the `approved` label (write access required) runs a workflow that writes content/{category}/{id}.json, validates it, and opens a pull request that closes the issue. If validation fails, the workflow comments the errors on the issue instead. A human merges the PR."
    },
    "corrections": {
      "form_url": "https://github.com/Drudley/indexagentica/issues/new?template=correction.yml",
      "note": "Report wrong facts, broken links or request removal. Or edit the JSON file directly in a PR and set updated."
    },
    "policy": [
      "Useful to AI agents or people building them.",
      "Publicly reachable; facts verifiable from the listed sources.",
      "No spam, affiliate links or SEO-only pages; disclose any affiliation."
    ],
    "longform": {
      "note": "Guides, comparisons, stacks and skills are written by maintainers. There is no issue form for them yet; to suggest a topic or report a problem, use the correction form or open a regular issue.",
      "file_paths": [
        "content-long/guides/{id}.md",
        "content-long/compare/{id}.md",
        "content-long/stacks/{id}.md",
        "content-long/skills/{id}/SKILL.md"
      ],
      "docs": "https://github.com/Drudley/indexagentica/blob/main/content-long/README.md"
    }
  }
}
