Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:ec87e6af7109f69d690dcf8743c3a7db611c64c148d572d0e20f1fcd35183900
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Fetch any page of the Alter documentation by slug (e.g. \"quickstart\"). The whole published docs site is bundled here, skill pages included, so every page a doc, a skill or a flow step links to can be read in-band. Accepts any spelling the docs use: a bare slug, a leading slash, a #section anchor, a full docs.alterauth.com URL, or an older path that now redirects. Omit the slug to list every page.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "slug": { "description": "Doc slug, e.g. \"guides/call-apis-on-behalf-of-users\".", "maxLength": 200, "type": "string" } }, "type": "object" }, "name": "fetch_doc", "outputSchema": null }, { "description": "Fetch one provider API operation's full contract — method, path, parameters, request/response schemas — live from Alter's provider-spec catalog, plus the spec's source and freshness. Get operation ids from list_operations first.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "kind": { "description": "Provider family: oauth (user-authorized) or managed (API-key).", "enum": [ "oauth", "managed" ], "type": "string" }, "operation_id": { "description": "Operation id from list_operations, e.g. \"gmail.users.messages.list\".", "maxLength": 500, "minLength": 1, "type": "string" }, "provider_id": { "description": "Provider id, e.g. \"google\" or \"github\".", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "provider_id", "operation_id" ], "type": "object" }, "name": "get_operation_schema", "outputSchema": null }, { "description": "Begin or change an Alter integration. Without args: lists the phases. With `phase`: returns that phase's flows + a heuristic hint — classify the use case YOURSELF and call again with `goal` for the plan. If the use case spans multiple flows, run them sequentially.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "goal": { "description": "The flow id YOU classified. Returns that flow's full plan.", "enum": [ "user-data", "backend-secret", "agent", "add-provider", "add-secret", "add-agent", "rotate-key", "manage-grant", "set-policy" ], "type": "string" }, "phase": { "description": "setup (integrate from scratch) or modify (change an existing integration).", "enum": [ "setup", "modify" ], "type": "string" }, "use_case": { "description": "Plain-English description of what the developer wants.", "maxLength": 2000, "type": "string" } }, "type": "object" }, "name": "get_started", "outputSchema": null }, { "description": "List the API operations a provider exposes, live from Alter's provider-spec catalog (e.g. \"what can I call on google?\"). Returns operation ids + methods/paths, plus the spec's source and freshness. Omit `kind` to auto-detect the provider family; when the id exists in both oauth and managed you'll be asked to pass `kind`. Machine-readable rows ride in `structuredContent` (see this tool's outputSchema) — read those rather than parsing the prose.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "kind": { "description": "Provider family: oauth (user-authorized) or managed (API-key).", "enum": [ "oauth", "managed" ], "type": "string" }, "limit": { "description": "Max operations to return (backend default 100, max 500).", "maximum": 500, "minimum": 1, "type": "integer" }, "offset": { "description": "Zero-based offset for paging through large operation lists.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "provider_id": { "description": "Provider id, e.g. \"google\" or \"github\".", "maxLength": 200, "minLength": 1, "type": "string" }, "search": { "description": "Case-insensitive filter over operation ids/paths/summaries.", "maxLength": 200, "type": "string" } }, "required": [ "provider_id" ], "type": "object" }, "name": "list_operations", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "offset": { "description": "Zero-based offset of the first row.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "operations": { "description": "This page of operations, in the catalog's serving order.", "items": { "additionalProperties": false, "properties": { "method": { "description": "HTTP method, e.g. GET.", "type": "string" }, "operation_id": { "description": "Pass to get_operation_schema for the full contract.", "type": "string" }, "path_template": { "description": "Path with {placeholders}, e.g. /repos/{owner}/{repo}.", "type": "string" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "One-line description, or null when the spec omits it." } }, "required": [ "operation_id", "method", "path_template", "summary" ], "type": "object" }, "type": "array" }, "provider_id": { "description": "Resolved provider id the rows belong to.", "type": "string" }, "provider_kind": { "description": "Resolved provider family: oauth or managed.", "enum": [ "oauth", "managed" ], "type": "string" }, "spec_version": { "description": "Alter's ingested spec version these rows came from.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "total": { "description": "Total operations matching the query (before limit/offset).", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "provider_id", "provider_kind", "spec_version", "total", "offset", "operations" ], "type": "object" } }, { "description": "List the lifecycle phases this server serves (setup, modify) and what each is for.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_phases", "outputSchema": null }, { "description": "List every provider with an ingested API spec in Alter's provider-spec catalog, with each spec's source and freshness. Optionally filter by `kind`. Start here, then call list_operations for a provider's operations.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "kind": { "description": "Provider family: oauth (user-authorized) or managed (API-key).", "enum": [ "oauth", "managed" ], "type": "string" } }, "type": "object" }, "name": "list_providers", "outputSchema": null }, { "description": "List the guidance Skills available on this server, with the phase each serves. Read a skill via its resource (skill://alter/<name>).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_skills", "outputSchema": null }, { "description": "Return the next step for a flow. Pass the goal (flow id) and the id of the last completed step (omit `after` for the first step). Run each step's detect command FIRST and skip the run command when detection passes. The design step also returns that flow's complete starter ALTER_INTEGRATION.md.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "after": { "description": "Id of the last completed step (e.g. \"2\", \"3a\").", "maxLength": 10, "type": "string" }, "goal": { "description": "The flow id (setup goal or modify operation).", "enum": [ "user-data", "backend-secret", "agent", "add-provider", "add-secret", "add-agent", "rotate-key", "manage-grant", "set-policy" ], "type": "string" } }, "required": [ "goal" ], "type": "object" }, "name": "next_step", "outputSchema": null }, { "description": "The authoritative grammar of Alter's runtime-policy language, live from the deployed backend: every authorable rule type with its JSON body schema, caps, authorable levels, worked examples, and fail-closed semantics. Call with no arguments for the overview; pass `rule_type` (e.g. \"content_match\") for one type's full grammar. Use it before authoring rules with `alter policy rules create` — never guess a body shape. Vocabulary: the dashboard's \"Runtime policies\" surface, the docs' \"policy\", and `alter policy` are one feature, and the dashboard's \"Require human approval\" type is the `require_approval` rule type (its grant-editor block is the grant-level baseline of the same gate). The same grammar is what policy files carry: `alter policy validate|test|plan|apply` review rules in Git and CI, and a rule with a `code_owner` is changed through its file, never with `rules update`. Workflow prose: the `set-policy` modify flow (`get_started` with phase=modify), fetch_doc(\"guides/set-policies\"), fetch_doc(\"guides/add-human-in-the-loop-approvals\"), fetch_doc(\"guides/policy-as-code\"), and fetch_doc(\"reference/cli/commands/policy\").", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "rule_type": { "description": "One rule type's full grammar, e.g. \"content_match\" or \"quota\".", "maxLength": 50, "minLength": 1, "type": "string" } }, "type": "object" }, "name": "policy_language", "outputSchema": null }, { "description": "Return the Alter SDK wiring (install + client init + request) to write into the developer's codebase, for a language and setup goal.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "goal": { "description": "The setup goal (user-data | backend-secret | agent).", "enum": [ "user-data", "backend-secret", "agent" ], "type": "string" }, "language": { "description": "Target language.", "enum": [ "python", "typescript" ], "type": "string" } }, "required": [ "language", "goal" ], "type": "object" }, "name": "sdk_integration", "outputSchema": null }, { "description": "Return a runnable Alter SDK call pattern for a language: `proxy-call` (zero-egress proxy_request + HITL), `resolve-grant-by-user` (call as an end user via their delegated grant), `delegate-managed-secret` (the operator-side delegation step), or `resolve-ambiguous-grant` (an identity-mode call matched several of one user's grants: choose deliberately, never the first, and persist it; ask the developer at design time whether users can hold several accounts per provider). Use AFTER `sdk_integration` has wired the client.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "language": { "description": "Target language.", "enum": [ "python", "typescript" ], "type": "string" }, "pattern": { "description": "proxy-call | resolve-grant-by-user | delegate-managed-secret | resolve-ambiguous-grant.", "enum": [ "proxy-call", "resolve-grant-by-user", "delegate-managed-secret", "resolve-ambiguous-grant" ], "type": "string" } }, "required": [ "language", "pattern" ], "type": "object" }, "name": "sdk_pattern", "outputSchema": null }, { "description": "Search every bundled page of the Alter documentation (docs and skill pages) by keywords: returns the best-matching pages with the section and a snippet that matched. Use it when a flow step or doc did not point you at the page you need, instead of guessing slugs or listing every page; then read one with fetch_doc and its slug.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Maximum results (default 8, at most 20).", "maximum": 20, "minimum": 1, "type": "integer" }, "query": { "description": "Keywords or a short phrase, e.g. \"connect widget popup\" or \"PAT scopes login\".", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_docs", "outputSchema": null }, { "description": "Map a @alter-ai/cli exit code or error message to a remediation.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "error": { "description": "The stderr / error message.", "maxLength": 10000, "type": "string" }, "exit_code": { "description": "The CLI process exit code.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "type": "object" }, "name": "troubleshoot", "outputSchema": null }, { "description": "Return a copy-pasteable recipe to VERIFY an integration works: `first-call` (code↔design, an audit row, correct attribution) or `per-user-isolation` (a multi-user/broker server runs two users under different credentials and rejects cross-user access). Guidance only — you run the commands.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "scenario": { "description": "first-call | per-user-isolation.", "enum": [ "first-call", "per-user-isolation" ], "type": "string" } }, "required": [ "scenario" ], "type": "object" }, "name": "verify_integration", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ec87e6af7109f69d690dcf8743c3a7db611c64c148d572d0e20f1fcd35183900 | sha256sum