Getting Started

Tools

Parameters

Parameter Type Required Description
slug string Yes Exact tool slug selected from a search_tools result

Returns

The tool returns data in Toon (Token-Oriented Object Notation), a compact, token-efficient format for LLM consumption. Learn more at toonformat.dev. When context is available, the response is the encoded tool context payload. See the example below for the exact Toon shape currently returned for redop. If context is not available for the slug, the tool returns a structured error payload instead of guessed guidance.

Example call

{
  "slug": "redop"
}

Example response (Toon format):

name: Redop
slug: redop
tagline: "Bun-first TypeScript framework for building MCP servers with tools, resources, and prompts."
docsUrl: "https://www.npmjs.com/package/@redopjs/redop"
install[2]:
  - label: Install into an existing project
    steps[2]:
      - title: Add dependencies
        command: bun add @redopjs/redop zod
      - title: Start an HTTP server
        notes: "Create a server with `new Redop({...}).tool(...).listen({...})` and expose MCP over HTTP."
  - label: Scaffold a new server
    steps[1]{title,command,notes}:
      Generate a starter project,bun create redop-app,"Use this when you want transport, schema, and deploy presets generated for you."
examples[3]:
  - title: Minimal MCP server (HTTP)
    description: A small server with one tool using Zod validation and HTTP transport.
    language: ts
    code: "import { Redop } from \"@redopjs/redop\";\nimport { z } from \"zod\";\n\nnew Redop({\n  name: \"example\",\n  title: \"Example MCP\",\n  version: \"0.1.0\",\n  capabilities: { tools: true, prompts: true, resources: true },\n})\n  .tool(\"echo\", {\n    description: \"Echo back input\",\n    input: z.object({ text: z.string().min(1) }),\n    handler: async ({ input }) => ({ text: input.text }),\n  })\n  .listen({ port: 3000, hostname: \"0.0.0.0\", cors: true });"
  - title: Add a prompt surface
    description: Return reusable prompt material instead of executing a task.
    language: ts
    code: "import { Redop } from \"@redopjs/redop\";\n\nnew Redop({ name: \"example\", version: \"0.1.0\" }).prompt(\"code_review\", {\n  description: \"Reusable code review prompt\",\n  arguments: [{ name: \"code\", required: true }],\n  handler: ({ arguments: args }) => [\n    {\n      role: \"user\",\n      content: { type: \"text\", text: `Review this code:\n\n${args.code}` },\n    },\n  ],\n});"
  - title: Run locally
    language: bash
    code: "bun install\nbun run src/index.ts"
io:
  inputs[2]{name,description}:
    tool definitions,"Register tools with a name, description, Zod input schema (optional), annotations (optional), and a handler."
    middleware and hooks,Compose behavior with `.use(...)` middleware and lifecycle hooks like `afterResponse` for post-response work.
  outputs[2]{name,description}:
    MCP server,Exposes tools/resources/prompts over HTTP and/or stdio depending on transport configuration.
    typed handler contracts,Zod schemas become runtime validation and TypeScript inference for handler inputs.

## Unsupported slugs

If the slug has no available context, `get_tool_context` returns a structured fallback response. Current tool context coverage is limited. Example unsupported response:

error: Tool context not found slug: some-tool hint: Context is currently available only for redop. Do not invent install or usage guidance for other slugs without context.


Treat this as a hard stop for authoritative setup guidance. Do not fill in installation commands or usage details from model memory when the tool says context is unavailable.

## Use this tool when

- The agent has already shortlisted a tool and needs authoritative setup guidance
- The agent needs install commands, examples, or usage shape before writing code
- The agent should avoid guessing documentation details from training data

## Typical workflow

1. Call [`search_tools`](/content/docs/mcp/tools-reference/search-tools/index.html) with a natural-language task.
2. Select a candidate slug from the ranked results.
3. Call `get_tool_context` with that exact slug.
4. Use the returned install steps, examples, and I/O details when generating implementation guidance.
5. If no context is returned, say that the tool context is unavailable.