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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:c8cd6813d7ac9a598c7597e6680f5e9146d3ca1b0e76b5a9d96c5715c59e171a | sha256sum