api-evangelist

Sixteen years of API research as MCP tools — stories, areas, governance blocks & services

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
77%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (11)

  • LOWTool 'get_service' description lacks action verbin get_service
  • LOWTool 'get_post' description lacks action verbin get_post
  • LOWTool 'get_area' description lacks action verbin get_area
  • LOWTool 'get_paper' description lacks action verbin get_paper
  • LOWTool 'get_video' description lacks action verbin get_video
  • LOWTool 'find_related' description lacks action verbin find_related
  • LOWTool 'insights_adoption' description lacks action verbin insights_adoption
  • LOWTool 'company_gaps' description lacks action verbin company_gaps
  • LOWTool 'company_peers' description lacks action verbin company_peers
  • LOWTool 'company_signals' description lacks action verbin company_signals

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,242Tokens (tool definitions)
~716 BTypical response size
Significant attention impact (5.66% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "api-evangelist": {
      "url": "https://mcp.apievangelist.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.apievangelist.com/mcpstreamable-http

What it can do

Tool inventory

Tools (67)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_overview

START HERE. What the API Evangelist network offers: sixteen years of API research as searchable stories, 77 topic areas, governance building blocks (guidance, rules, policies, standards, strategies), papers, conversations, and the consulting services Kin Lane offers teams. Returns counts, entry points, and how to engage.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪guide_topic(topic)

PRO — Curated guide to one API topic (e.g. "gateways", "api governance", "discovery", "agents"). Bundles the matching topic area (with related areas), top guidance, rules, policies, and standards, relevant papers and recent stories, plus the API Evangelist services that can help a team with this topic.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "description": "The topic to build a guide for."
    }
  },
  "required": [
    "topic"
  ]
}
🟢find_services(q, tags, match, sort, fields, ...)

The services API Evangelist offers teams and customers — API strategy, governance, discovery, and evangelism engagements by Kin Lane. The front door to working with API Evangelist. (For the third-party vendor registry, use find_solutions.)

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_service(slug, include)

Full detail for one service offering by slug; include=["content"] inlines the full pitch.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "content"
        ]
      }
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_solutions(q, tags, match, sort, fields, ...)

The solutions registry — 740+ third-party API services and tools (gateways, portals, testing, monitoring, …) ranked by adoption across the companies API Evangelist tracks.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_solution(slug)

One solution from the vendor registry by slug, with its website and adoption count.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_tools(q, tags, match, sort, fields, ...)

The open-source tooling registry — 400+ tools in use across the companies API Evangelist tracks, each with adoption counts and technology-radar placement.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_tool(slug)

One tool from the tooling registry by slug, with its website, adoption count, and radar ring.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_contact

Every way to reach API Evangelist — email, contact form, newsletter, GitHub, social channels, and postal mail.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢search_api_evangelist(types, q, tags, match, sort, ...)

Unified search across the whole network: 5k+ stories, 77 topic areas, 2.5k governance building blocks, papers, conversations, videos, tools, timelines, services, and vocabulary. Filter with types (posts, areas, guidance, rules, policies, standards, strategies, schema, properties, experiences, lifecycle, conversations, videos, papers, services, solutions, tools, timelines, vocabulary).

Input Schema

{
  "type": "object",
  "properties": {
    "types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢find_posts(year, q, tags, match, sort, ...)

Search or browse 5,100+ API Evangelist stories (2010–present); filter by year or tags.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "type": "string"
    },
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟡get_post(slug, include)

One story by slug (YYYY-MM-DD-slug); include=["content"] returns the full markdown body.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "content"
        ]
      }
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_areas(q, tags, match, sort, fields, ...)

The 77 focused topic areas of the network (agents, gateways, security, …), each a subsite with its own catalog.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_area(slug)

One topic area with its related-area graph resolved — walk the network from here.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_building_blocks(type, q, tags, match, sort, ...)

Search the governance building blocks by type: guidance (177), rules (617), policies (283), standards (432), strategies (75), schema (11), properties (790), experiences (46), lifecycle (29).

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "guidance",
        "rules",
        "policies",
        "standards",
        "strategies",
        "schema",
        "properties",
        "experiences",
        "lifecycle"
      ]
    },
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "required": [
    "type"
  ]
}
🟢get_building_block(type, slug, include)

One building block by type + slug; include=["content"] returns the full body.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "guidance",
        "rules",
        "policies",
        "standards",
        "strategies",
        "schema",
        "properties",
        "experiences",
        "lifecycle"
      ]
    },
    "slug": {
      "type": "string"
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "content"
        ]
      }
    }
  },
  "required": [
    "type",
    "slug"
  ]
}
🟢find_conversations(q, tags, match, sort, fields, ...)

API Evangelist Conversations — recorded discussions with API practitioners (guest, company, YouTube/SoundCloud links).

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_conversation(slug, include)

One conversation with guest detail and media links; include=["content"] returns the writeup.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "content"
        ]
      }
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_papers(q, tags, match, sort, fields, ...)

API Evangelist papers — single-PDF deep dives on one practice or topic, with outlines.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_paper(slug)

One paper with its full outline and purchase/landing URL.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_videos(q, tags, match, sort, fields, ...)

The API Evangelist video library — interviews and discussions from across the API space, searchable by transcript.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_video(slug, include)

One video by slug with its YouTube id; include=["content"] returns the full transcript.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "content"
        ]
      }
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_timeline(timeline, page, limit)

One of the four research timelines in chronological order: api (the moments that shaped web APIs), resources (which digital resources became APIs and when), industries (the industrial history framing API infrastructure), people (the people who made compute and APIs possible).

Input Schema

{
  "type": "object",
  "properties": {
    "timeline": {
      "type": "string",
      "enum": [
        "api",
        "resources",
        "industries",
        "people"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "required": [
    "timeline"
  ]
}
🟢get_guidance_section(section, page, limit)

One editorial guidance section as a list: history, technology, business, politics, governance, or evangelism — the six lenses API Evangelist organizes guidance through.

Input Schema

{
  "type": "object",
  "properties": {
    "section": {
      "type": "string",
      "enum": [
        "history",
        "technology",
        "business",
        "politics",
        "governance",
        "evangelism"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "required": [
    "section"
  ]
}
🟢find_vocabulary(category, q, tags, match, sort, ...)

The API vocabulary — thousands of resources, actions, personas, domains, schemas, and tags extracted from the API landscape. Filter by category.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "resources",
        "actions",
        "personas",
        "domains",
        "schemas",
        "tags"
      ]
    },
    "q": {
      "type": "string",
      "description": "Free text over title, summary, tags, and body."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tag slugs; match any by default."
    },
    "match": {
      "type": "string",
      "enum": [
        "any",
        "all"
      ],
      "default": "any"
    },
    "sort": {
      "type": "string",
      "enum": [
        "default",
        "title",
        "date"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_feeds

The static machine-readable feeds every network site publishes (JSON, APIs.json, zero-auth) — the no-key alternative to this API.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢find_tags(q, sort, page, limit)

Browse and rank the network tag taxonomy — every subject tag across 16k+ docs, by frequency or breadth (how many content types use it). Search with q. The map of what API Evangelist covers.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string"
    },
    "sort": {
      "type": "string",
      "enum": [
        "count",
        "breadth"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_tag(slug, types, page, limit)

One tag with its per-type counts and everything it labels across the whole network (stories, areas, guidance, papers, …). Filter with types.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_related(type, slug, types, limit)

Given any doc (type + slug), the most related content across the whole network, ranked by shared-tag relevance (rare, specific tags weigh most). "More like this," across stories, areas, guidance, papers, conversations, and more.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "required": [
    "type",
    "slug"
  ]
}
🟢get_stats

PRO — catalog intelligence: per-type counts, stories-per-year, and the top tags by reach across the network.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢find_company_insights(q, page, limit)

Browse profiled companies (Fortune 1000 + API providers) by name; ranked by technology-readiness signal. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
⚪insights_dimensions(page, limit)

Cross-section ranking of the 40 tracked investment dimensions (AI, cloud, governance, …) by company signal. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
⚪insights_adoption(type, page, limit)

Services, tools, or standards ranked by how many companies adopt them. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "service",
        "tool",
        "standard"
      ],
      "default": "service"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢get_company_insight(slug)

Full demand-side profile for one company: 40-dimension readiness, adopted stack, per-quarter history. Pro.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
⚪company_gaps(slug)

A company's weakest investment dimensions — where it is thin. Pro.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢company_dimensions(slug)

PRO — a company's investment dimensions, each read AGAINST the measured cohort: the cohort median, mean and max, this company's rank and percentile, and an index where 1.0 is exactly typical. A raw dimension score is unreadable on its own; these are the columns that make it mean something.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
⚪company_peers(slug, limit)

PRO — the companies most comparable to this one (same sub-sector where the data supports it, same industry otherwise), each with signal totals and top dimensions. The response says which basis it used.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "slug"
  ]
}
🟢company_whitespace(slug, limit)

PRO — what this company's peers run that it does not, ranked by how many peers carry it. The opening list for a vendor selling into the account.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "slug"
  ]
}
⚪company_signals(slug)

PRO — the company's adopted stack entity by entity (services, tools, standards), each with how many companies across the cohort carry it and its radar ring.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟢find_entities(kind, q, min_companies, page, limit)

Browse the demand-side entity catalog — every service, tool and standard companies are measured against, ranked by how many carry it. Free. This is the left-hand side of the inversion: pick an entity here, then call entity_demand to see WHO.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "service",
        "tool",
        "standard"
      ]
    },
    "q": {
      "type": "string",
      "description": "Substring match on the entity name."
    },
    "min_companies": {
      "type": "integer",
      "description": "Only entities carried by at least this many companies."
    },
    "page": {
      "type": "integer"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}
🟢entity_demand(kind, slug, industry, limit)

PRO — THE INVERSION. Every other insights tool runs company -> stack; this one runs stack -> companies: which companies show demand for a given service, tool or standard, broken down by industry. This is the prospecting query — "who should I be selling this to" — and it exists in no report, bundle or page. Returns BOTH the authoritative company count and the companies it can actually name, with the basis difference explained.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "service",
        "tool",
        "standard"
      ]
    },
    "slug": {
      "type": "string",
      "description": "Entity slug or display name — either resolves (\"spark\" and \"Apache Spark\" both work)."
    },
    "industry": {
      "type": "string",
      "description": "Restrict the named companies to one industry."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "kind",
    "slug"
  ]
}
🟢find_measured_standards(page, limit)

The standards bodies API Evangelist has actually MEASURED — repositories, maturity, governance, coalition. Distinct from find_standards, which searches 613 catalog entries describing what a standard IS. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}
🟢standard_adoption(slug)

How far a standards body actually got: repositories published, how many graduated past unclassified and the resulting share, release cadence, contributor count — with the provenance of every figure and an explicit list of what is NOT measured. Free, because a specification is a public good.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
⚪standard_coalition(slug)

Who is actually behind a standard: the governing bodies and their membership, the working groups, the member companies, and the named people. Carries the caveats where our machine-readable source disagrees with the body's own published roster. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
⚪standard_repositories(slug, page, limit)

Every repository a standards body publishes, with maturity, stars, forks, open issues and archived status. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "page": {
      "type": "integer"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "slug"
  ]
}
⚪validate_api(document)

Lint an OpenAPI, AsyncAPI, Arazzo, or JSON Schema document against the curated best-of-breed ruleset (Spectral) and return the findings. Pass your own `ruleset` to run rules you own instead of the catalog — which is what you should do before gating on anything.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
🟢api_coverage(document)

Measure how much of an API description your governance actually inspects — coverage by section, each rule's reach, and the rules that match nothing. Like test coverage, one altitude up.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
🟡reconcile_waivers(waivers, violations)

Reconcile a waivers file against lint output: suppress sanctioned violations and surface the expired, stale, and expiring ones. Returns the effective failing set a build should gate on.

Input Schema

{
  "type": "object",
  "properties": {
    "waivers": {
      "type": [
        "string",
        "object"
      ],
      "description": "The waivers file to reconcile — sanctioned violations, with expiry."
    },
    "violations": {
      "type": [
        "array",
        "object",
        "string"
      ],
      "description": "Lint output to reconcile against the waivers. An array of findings, or the object a linter returned."
    }
  },
  "required": [
    "waivers",
    "violations"
  ],
  "additionalProperties": true
}
⚪governance_report(results)

Turn Spectral findings into a self-contained HTML governance report — severity summary, grouped by rule, framed toward progress.

Input Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": [
        "array",
        "object"
      ],
      "description": "Spectral findings to render. An array, or the `{ results: [...] }` object a run returned."
    }
  },
  "required": [
    "results"
  ],
  "additionalProperties": true
}
⚪verify_certificate(certificate, api)

Re-verify a governance certificate against the API it attests to. If the API drifted or the certificate was forged, verification fails.

Input Schema

{
  "type": "object",
  "properties": {
    "certificate": {
      "type": [
        "string",
        "object"
      ],
      "description": "The governance certificate to re-verify. Alias: `cert`."
    },
    "api": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description being attested or verified. String or parsed object."
    }
  },
  "required": [
    "certificate",
    "api"
  ],
  "additionalProperties": true
}
⚪classify_api_fields(document)

Inventory the PII, secret, and sensitive fields an OpenAPI exposes, across parameters and request/response schemas. Run this before exposing an API to agents.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
🟡diff_api_versions(old, new)

Compare two OpenAPI versions and classify every change as breaking, non-breaking, or an addition — at path, operation, parameter, request-body, and response granularity.

Input Schema

{
  "type": "object",
  "properties": {
    "old": {
      "type": [
        "string",
        "object"
      ],
      "description": "The BASELINE version of the document. Aliases: `from`, `base`."
    },
    "new": {
      "type": [
        "string",
        "object"
      ],
      "description": "The CANDIDATE version to compare against the baseline. Aliases: `to`, `revision`."
    }
  },
  "required": [
    "old",
    "new"
  ],
  "additionalProperties": true
}
⚪api_scorecard(document)

Score an API's maturity 0-100 with a letter grade across design, governance coverage, documentation, and (from an apis.json) discoverability, agent-readiness, and operations. Pass your own `ruleset` — a score against rules you never adopted means little.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
🟡govern_estate(apis)

PRO — Run the core governance checks across a WHOLE SET of internal APIs and roll them up: per-API score/grade/errors/PII, plus estate aggregates (avg score, grade distribution, APIs with PII/secrets) and a worst-first punch-list of what to fix. Pass `apis` ([{id, document}]) and your own `ruleset`. detail:true adds per-API dimensions.

Input Schema

{
  "type": "object",
  "properties": {
    "apis": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "The estate: one entry per API, [{ id, document }]. `document` alone is accepted for a single API."
    }
  },
  "required": [
    "apis"
  ],
  "additionalProperties": true
}
⚪deprecation_posture(document)

Report every deprecated operation and whether it actually announces a sunset. The ones that go quiet are the ones that break consumers.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
⚪validate_onboarding(descriptor)

Validate an API Onboarding Descriptor (AID) against the api-commons schema and report which optional sections it fills in.

Input Schema

{
  "type": "object",
  "properties": {
    "descriptor": {
      "type": [
        "string",
        "object"
      ],
      "description": "An API Onboarding Descriptor (AID) to validate. Aliases: `aid`, `document`."
    }
  },
  "required": [
    "descriptor"
  ],
  "additionalProperties": true
}
⚪certify_api(api)

Issue a tamper-evident governance certificate attesting an API passed a named ruleset at a profile threshold. A SHA-256 fingerprint lets anyone re-verify it.

Input Schema

{
  "type": "object",
  "properties": {
    "api": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description being attested or verified. String or parsed object."
    }
  },
  "required": [
    "api"
  ],
  "additionalProperties": true
}
⚪export_agent_rules(ruleset)

Turn a governance ruleset into agent-native guidance — an AGENTS.md block, a system-prompt set, a per-rule remediation pack, and a digest — so agents follow the rules while authoring, not after linting.

Input Schema

{
  "type": "object",
  "properties": {
    "ruleset": {
      "type": "object",
      "description": "A Spectral ruleset to run instead of the catalog default. Score against rules you never adopted means little — pass your own."
    }
  },
  "required": [
    "ruleset"
  ],
  "additionalProperties": true
}
⚪audit_pipeline

Score a repository's Spectral CI setup against an 8-point maturity rubric and return a prioritized punch-list. Pass a public `repo` ("owner/name") or `files`.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": true
}
⚪forge_mcp_tools(document)

From an OpenAPI, forge an MCP server design, per-operation tools, Agent Skills, an enriched OpenAPI, a server.json, and apis.json properties.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
⚪gate_agent_context

Choose which operations and fields an API exposes to agents and emit a governed Tyk OpenAPI, an MCP tool manifest, and a Spectral ruleset with PII and secret checks.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": true
}
⚪apply_overlay(document, overlay)

Apply an OpenAPI Overlay to a document and report what each action matched. Use it for deprecation and migration choreography without forking the contract.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    },
    "overlay": {
      "type": [
        "string",
        "object"
      ],
      "description": "An OpenAPI Overlay document whose actions are applied to `document`."
    }
  },
  "required": [
    "document",
    "overlay"
  ],
  "additionalProperties": true
}
⚪mock_payloads(document)

Generate an example request and success-response payload for every operation from its schema.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
⚪code_snippets(document)

Generate runnable curl, JavaScript, and Python samples for every operation, with path params filled in and a realistic body.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": [
        "string",
        "object"
      ],
      "description": "The API description to operate on — OpenAPI, AsyncAPI, Arazzo or JSON Schema. A YAML/JSON string or an already-parsed object; both are accepted."
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": true
}
🟡score_reusability

Score how reusable a set of APIs is and detect duplication across them — the anti-sprawl view of an estate.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": true
}
⚪map_api_experience

Map each REST operation to its MCP tool and Agent Skill — the API -> MCP -> Agent-Skill chain — from an APIs.json, with a free/paid coverage scorecard and a flow map.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": true
}
⚪generate_agent_descriptor

Generate an API's llms.txt and an AGENTS.md consumption contract — base URL, auth, the operation table, deprecated operations to avoid, and usage rules.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded67 tools
verifiedversion not recorded67 tools
verifiedversion not recorded67 tools