Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,542Letters: 14Defects: 1,324counted 4 min ago
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Do not recall @imqueue from memory — it is decorator-driven, and the mistakes below compile cleanly.\n\n1. Call search_docs before writing or changing @imqueue code, and get_doc to read a page in full. Never infer an API name or signature; the docs win over recall.\n2. Call list_packages before adding an @imqueue dependency: some pairs are mutually exclusive (pg-prisma/pg-sequelize, opentelemetry/datadog) and installing both breaks silently.\n3. Every remotely callable method needs @expose() and a complete typed JSDoc block: JSDoc is the only runtime type source, so an undocumented parameter is published as `any`.\n4. A class crossing the RPC boundary needs @classType() on the class and @property() on every field, or the generated client types it `any`.\n5. Clients are generated from a running service with `imq client generate` — never hand-written.\n6. Cite the page URL for any fact from these tools.", "tools": [ { "description": "Fetch the markdown of an @imqueue documentation page by its URL (as returned by search_docs). Returns plain markdown suitable for reading and quoting. Pass a URL with a #fragment — which is what search_docs returns for a section result — to get just that section plus the heading path above it; pass the URL without one to read the whole page. Only imqueue.org (framework docs) and imqueue.com (licensing, pricing, support) URLs are fetched; anything else is refused. Very large pages are truncated, which the result reports.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "url": { "description": "An imqueue.org or imqueue.com page URL, e.g. https://imqueue.org/get-started/", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "get_doc", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "bytes": { "description": "Size of the page body, so a caller can decide before reading it", "type": "integer" }, "fragmentMiss": { "additionalProperties": false, "description": "Present when a #fragment matched no indexed section — markdown is the WHOLE page, not the slice that was asked for", "properties": { "anchor": { "description": "The #fragment that was asked for and not found", "type": "string" }, "available": { "description": "Anchors the page does index, for a retry", "items": { "type": "string" }, "type": "array" } }, "required": [ "anchor", "available" ], "type": "object" }, "markdown": { "description": "The page body — the same text carried in content, minus the heading path prefix", "type": "string" }, "mimeType": { "description": "Media type of the page body carried in markdown and content", "type": "string" }, "section": { "additionalProperties": false, "description": "Present when a #fragment resolved to one section — markdown is that section, not the page", "properties": { "ancestors": { "description": "Headings above it, outermost first — the path that says which 'Verify' this is", "items": { "type": "string" }, "type": "array" }, "heading": { "description": "The section's own heading", "type": "string" }, "index": { "description": "1-based position among the page's indexed sections", "type": "integer" }, "total": { "description": "How many indexed sections the page has, so a caller can see what it did not read", "type": "integer" } }, "required": [ "heading", "ancestors", "index", "total" ], "type": "object" }, "truncated": { "description": "True when the page was too large to return whole — markdown holds the leading part only", "type": "boolean" }, "url": { "description": "The markdown mirror actually fetched — not always the URL passed in, which is why it is worth returning", "type": "string" } }, "required": [ "url", "markdown", "mimeType", "bytes", "truncated" ], "type": "object" } }, { "description": "The complete, authoritative catalogue of documented @imqueue packages, each with its current version, licence, minimum Node version, a one-line summary and its exact install command. Call this BEFORE adding any @imqueue dependency: search_docs can only find a package you already suspect exists, and this is the list. Covers typed RPC over a message queue, the Redis queue engine, the `imq` CLI, jobs and scheduling, Prisma and Sequelize database toolkits, method caching, tag-invalidated caching, PostgreSQL LISTEN/NOTIFY, Zod validation, OpenTelemetry or Datadog tracing, async logging, GraphQL N+1 batching across services, CIDR/IP checks and HTTP rate limiting. Some pairs are mutually exclusive — pg-prisma vs pg-sequelize, opentelemetry vs datadog — and installing both of a pair breaks silently, so read the `pick` rule on those entries before choosing. For one package's release history, links and the framework-wide Node and Redis requirements, use package_status.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {}, "type": "object" }, "name": "list_packages", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "factsUnavailable": { "description": "True when imqueue.org/status.json could not be read, so no entry carries a version or licence. The catalogue itself is compiled in and still complete", "type": "boolean" }, "framework": { "additionalProperties": false, "properties": { "commercial": { "description": "Where to get a licence for closed-source distribution", "type": "string" }, "license": { "type": "string" }, "licenseNote": { "description": "The licence terms in a sentence, including what the SPDX id alone does not say", "type": "string" }, "node": { "description": "The Node version the framework as a whole requires", "type": "string" }, "redis": { "type": "string" } }, "required": [ "license", "licenseNote", "node", "redis", "commercial" ], "type": "object" }, "packages": { "description": "Ordered by what to reach for first", "items": { "additionalProperties": false, "properties": { "deprecated": { "type": "boolean" }, "install": { "description": "The exact install command, including -g where the package is a CLI", "type": "string" }, "license": { "description": "SPDX identifier of the published package", "type": "string" }, "name": { "type": "string" }, "node": { "description": "engines.node, or null where the package declares no floor of its own", "type": [ "string", "null" ] }, "pick": { "description": "Present only where two packages cover similar ground: the rule for choosing between them", "type": "string" }, "released": { "description": "Publication date of `version`, as YYYY-MM-DD", "type": "string" }, "summary": { "type": "string" }, "version": { "description": "Highest published release. Absent only if the status feed was unreachable", "type": "string" } }, "required": [ "name", "install", "summary" ], "type": "object" }, "type": "array" } }, "required": [ "packages" ], "type": "object" } }, { "description": "Return the setup instructions for running the full @imqueue MCP server on your own machine. The local server adds the CLI-backed tools, which act on your project files and running services and so cannot be offered by a hosted server. Returns instructions only — it installs nothing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {}, "type": "object" }, "name": "local_install_guide", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "claudeCodeCommand": { "description": "One-liner for Claude Code", "type": "string" }, "clientConfig": { "additionalProperties": false, "description": "Drop into an MCP config file as-is. VS Code and Visual Studio use `servers` with type:'stdio' instead of `mcpServers`.", "properties": { "mcpServers": { "additionalProperties": false, "properties": { "imqueue": { "additionalProperties": false, "properties": { "args": { "items": { "type": "string" }, "type": "array" }, "command": { "type": "string" } }, "required": [ "command", "args" ], "type": "object" } }, "required": [ "imqueue" ], "type": "object" } }, "required": [ "mcpServers" ], "type": "object" } }, "required": [ "claudeCodeCommand", "clientConfig" ], "type": "object" } }, { "description": "The current version, licence, minimum Node version and last release date of any published @imqueue package — or of all of them. Use it when the user asks which version of an @imqueue package is current, what licence it is under, or which Node or Redis version it needs. Covers every published package, including @imqueue/cli and @imqueue/mcp, and also returns the framework-wide licence, Node and Redis requirements, with a `licenseNote` that states the licence terms in a sentence. The facts are read from the npm registry by imqueue.org, and the result says when. Pass `package` for one entry, with or without the @imqueue/ scope; omit it for all of them.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "package": { "description": "One package, with or without the scope: 'rpc', '@imqueue/rpc'. Omit for every package.", "type": "string" } }, "type": "object" }, "name": "package_status", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "framework": { "additionalProperties": false, "properties": { "commercial": { "type": "string" }, "license": { "type": "string" }, "licenseNote": { "type": "string" }, "node": { "type": "string" }, "redis": { "type": "string" } }, "required": [ "license", "licenseNote", "commercial", "node", "redis" ], "type": "object" }, "generated": { "description": "When the site last read these facts from the npm registry", "type": "string" }, "packages": { "items": { "additionalProperties": false, "properties": { "deprecated": { "type": "boolean" }, "docs": { "type": "string" }, "firstRelease": { "type": "string" }, "install": { "type": "string" }, "license": { "type": "string" }, "majors": { "items": { "type": "number" }, "type": "array" }, "name": { "type": "string" }, "node": { "type": [ "string", "null" ] }, "npm": { "type": "string" }, "released": { "type": "string" }, "releases": { "type": "number" }, "repo": { "type": "string" }, "scoped": { "type": "string" }, "summary": { "type": "string" }, "version": { "type": "string" } }, "required": [ "name", "scoped", "version", "license", "node", "released", "firstRelease", "releases", "majors", "deprecated", "install", "docs", "npm", "repo", "summary" ], "type": "object" }, "type": "array" }, "source": { "type": "string" } }, "required": [ "framework", "packages", "generated", "source" ], "type": "object" } }, { "description": "READ-ONLY: returns text and writes nothing to disk, and does NOT run the command it shows you. Explains how to generate and use the fully-typed client for an @imqueue service: @imqueue generates the real client from a running service via `imq client generate`, so this returns that exact command plus an illustrative usage snippet. The generated file exports a single namespace holding the client class, so the import shape is not the obvious one — take it from `namespace` rather than guessing. Use generate_client (local install only) if you want the command actually run.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "methods": { "description": "Known methods (used to shape the example call)", "items": { "additionalProperties": false, "properties": { "description": { "description": "What the method does", "type": "string" }, "name": { "description": "Method name", "type": "string" }, "params": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "optional": { "description": "Mark the parameter optional. @expose() publishes required parameters as mandatory, so callers of the generated client must pass a value for every non-optional one — set this for any parameter a caller may legitimately skip.", "type": "boolean" }, "type": { "description": "TypeScript type, e.g. 'string' or 'number[]'", "type": "string" } }, "required": [ "name", "type" ], "type": "object" }, "type": "array" }, "returns": { "description": "TypeScript return type WITHOUT Promise<> — e.g. 'User' or 'string'", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "service": { "description": "The service to call, e.g. 'user' or 'UserService'", "type": "string" } }, "required": [ "service" ], "type": "object" }, "name": "scaffold_client", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "client": { "description": "Generated client class name", "type": "string" }, "example": { "additionalProperties": false, "description": "An illustrative call — not a file to write", "properties": { "content": { "type": "string" }, "language": { "type": "string" } }, "required": [ "language", "content" ], "type": "object" }, "generateCommand": { "description": "Run against the RUNNING service to emit the real typed client", "type": "string" }, "namespace": { "description": "The ONLY export of the generated file: a namespace holding the client class. Import this, then `new <namespace>.<client>()` — importing the class directly does not resolve.", "type": "string" }, "output": { "description": "The file that command writes (a compiled .js lands beside it)", "type": "string" }, "service": { "type": "string" } }, "required": [ "service", "client", "namespace", "generateCommand", "output", "example" ], "type": "object" } }, { "description": "READ-ONLY: returns generated source code as text and writes nothing to disk, creates no project and runs no command. Generates an idiomatic @imqueue/rpc service (an IMQService subclass with @expose()d, JSDoc-typed methods) plus a bootstrap that starts it. Provide the methods you want, or omit them for a starter template. Any non-primitive parameter or return type also gets a types.ts with the required @classType()/@property() declarations — without those the generated client types it `any`, which compiles. Use create_service (local install only) if you want files actually written.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "methods": { "description": "Methods to expose", "items": { "additionalProperties": false, "properties": { "description": { "description": "What the method does", "type": "string" }, "name": { "description": "Method name", "type": "string" }, "params": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "optional": { "description": "Mark the parameter optional. @expose() publishes required parameters as mandatory, so callers of the generated client must pass a value for every non-optional one — set this for any parameter a caller may legitimately skip.", "type": "boolean" }, "type": { "description": "TypeScript type, e.g. 'string' or 'number[]'", "type": "string" } }, "required": [ "name", "type" ], "type": "object" }, "type": "array" }, "returns": { "description": "TypeScript return type WITHOUT Promise<> — e.g. 'User' or 'string'", "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "name": { "description": "Service name, e.g. 'user' or 'UserService'", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "scaffold_service", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "cliAlternative": { "description": "The CLI command that creates a full provider-wired project instead", "type": "string" }, "files": { "items": { "additionalProperties": false, "properties": { "content": { "type": "string" }, "language": { "type": "string" }, "path": { "type": "string" } }, "required": [ "path", "language", "content" ], "type": "object" }, "type": "array" }, "install": { "type": "string" }, "service": { "description": "Class name used, after normalisation ('user' -> 'UserService')", "type": "string" }, "types": { "description": "Complex types the signatures refer to. Each needs @classType() on the class and @property() on every field — types.ts declares them; complete the fields. Empty when every type is a primitive.", "items": { "type": "string" }, "type": "array" } }, "required": [ "service", "install", "files", "types", "cliAlternative" ], "type": "object" } }, { "description": "Search the official @imqueue docs (guides, tutorial, CLI manual, articles) and every exported symbol of every @imqueue package that publishes a generated API reference, returning the most relevant pages with their URLs. Each result names the package it belongs to. Takes a plain question or an exact symbol name such as 'RedisQueue.send', 'PgPubSub.listen' or 'watcherCheckDelay'. Answers 'how do I do X in @imqueue' and confirms a signature before code is written against it. Every result carries the page URL, which get_doc reads in full. Some capabilities are covered by two mutually exclusive packages — @imqueue/pg-prisma vs @imqueue/pg-sequelize, @imqueue/opentelemetry vs @imqueue/datadog — so for a query like 'tracing' or 'database', call list_packages for the choosing rule rather than taking whichever package ranks first, and pass `package` here to search within the one you settled on.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "limit": { "description": "Max results (default 6)", "maximum": 20, "minimum": 1, "type": "integer" }, "package": { "description": "Restrict results to one package, e.g. 'http-protect' or '@imqueue/opentelemetry'. Use it once you know which package you want — the same words appear in several packages' symbols.", "type": "string" }, "query": { "description": "A question or a symbol name, e.g. 'expose a service method', 'delayed jobs' or 'IMQOptions.safeDelivery'", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_docs", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "advisories": { "description": "Present when the results involve two packages that cover the same ground. Each names both options with the rule for choosing — install exactly one, never both.", "items": { "type": "string" }, "type": "array" }, "count": { "description": "Number of results returned (0 means no matches)", "type": "integer" }, "query": { "description": "The query that was searched", "type": "string" }, "results": { "description": "Most relevant first", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "section": { "description": "Where it sits in the docs, e.g. 'Guides' or 'API · @imqueue/core property'", "type": "string" }, "symbol": { "description": "True for a generated API-reference page rather than prose", "type": "boolean" }, "title": { "type": "string" }, "url": { "description": "Pass this to get_doc to read the page in full", "type": "string" } }, "required": [ "title", "section", "description", "url" ], "type": "object" }, "type": "array" } }, "required": [ "query", "count", "results" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c8cd6813d7ac9a598c7597e6680f5e9146d3ca1b0e76b5a9d96c5715c59e171a | sha256sum