Add a tool

Describe one thing your product can do, and how an agent calls it.

View on GitHub

A tool is one action an agent can call: one MCP tool, one CLI command or one API endpoint. A product with three actions needs three tool files.

Note. Its capability must be in tags.yml. If none fits, add one there in the same pull request.

How to create

  1. 1. Pick the capability

    Each tool has one capability, which puts it next to other vendors that do the same job. Pick one from tags.yml, the file that lists every tag. If none fits, add a new entry with a label and a few synonyms in the same pull request.

  2. 2. Create one file per function

    Name the file after the action it performs. Apollo can enrich a person, search for people and enrich a company, so that is three files, not one product page. The file path is the tool’s key and its URL.

    companies/apollo/tools/
    enrich-person.md
    search-people.md
    enrich-company.md
  3. 4. Name the call on each way in

    For each way in that your company.md declares, name the exact call: the MCP tool name under mcp, the CLI command (starting with the program name) under cli, or METHOD /path under api. Write it exactly as the vendor’s docs do, and point docs at that page. A published tool needs at least one call and a docs link. Until then, set status: draft. A draft gets no page and no file.

    companies/stripe/company.md
    ---
    name: Stripe
    domain: stripe.com
    category: payments
    tagline: Payments, billing and subscriptions for internet businesses.
    docs: https://docs.stripe.com
    github: https://github.com/stripe
    logo: https://cdn.growth.engineer/icons/companies/stripe-5ba232e3.jpg
    mcp:
      url: https://mcp.stripe.com
      auth: oauth
      docs: https://docs.stripe.com/mcp
    cli:
      install: npm install -g @stripe/cli
      binary: stripe
      auth: oauth
      docs: https://docs.stripe.com/stripe-cli
    api:
      url: https://api.stripe.com
      auth: api_key
      env: STRIPE_API_KEY
      keyUrl: https://dashboard.stripe.com/apikeys
      docs: https://docs.stripe.com/api
    updated: 2026-09-27
    ---
  4. 5. Date it

    Set updated to the day you last checked the facts, as YYYY-MM-DD. A workflow takes the newest date of its tools, so this also updates every workflow that uses the tool.

  5. 6. Check it locally

    Run one command to check everything. It reads every file, checks every link and builds the pages, then lists every problem at once with the file (and line) that caused it. The same check runs again on your pull request.

    Terminal
    pnpm install
    pnpm content:check
    pnpm dev   # then open /tools/apollo/enrich-person
  6. 7. Open a pull request

    Send one company, tool or workflow per pull request. Say what you added and how you checked the facts. Reviewers check the facts, and the build handles formatting.