### Run the example via CLI Source: https://docs.ratel.sh/docs/core/framework-integrations Commands to install dependencies and execute the example project from the repository. ```bash export OPENAI_API_KEY=sk-... pnpm install pnpm -F @ratel-ai/example-ai-sdk start "send an email to alice@example.com saying ship it" ``` -------------------------------- ### Install Skill Hook with User Scope Source: https://docs.ratel.sh/docs/local/managing-skills Example command to install a skill hook targeting the user settings file. ```bash ratel-mcp skill install-hook --scope user ``` -------------------------------- ### Install all skills Source: https://docs.ratel.sh/docs/core/skills-suite Installs all nine skills into the current project directory. ```bash npx skills add ratel-ai/skills -y --all ``` -------------------------------- ### Install and Run Ratel Local Source: https://docs.ratel.sh/docs/local Install the package globally or execute it directly using npx. ```bash pnpm add -g @ratel-ai/mcp-server # or skip the install and run it on the fly npx -y @ratel-ai/mcp-server --help ``` -------------------------------- ### Install Ratel SDKs Source: https://docs.ratel.sh/docs/core/sdks Installation commands for Python and TypeScript environments. ```bash pip install ratel-ai # upstream MCP ingestion (register_mcp_server) needs the extra: pip install 'ratel-ai[mcp]' ``` ```bash pnpm add @ratel-ai/sdk # or npm install @ratel-ai/sdk ``` -------------------------------- ### Install from local directory Source: https://docs.ratel.sh/docs/core/skills-suite Used for local development when iterating on the skills suite itself. ```bash git clone https://github.com/ratel-ai/skills npx skills add ./skills ``` -------------------------------- ### Quickstart integration Source: https://docs.ratel.sh/docs/core/skills-suite Command to run within a coding agent to initiate the Ratel integration plan. ```bash Run npx skills add ratel-ai/skills --all and use the skills to integrate Ratel in this project. ``` -------------------------------- ### Install Ratel Python SDK Source: https://docs.ratel.sh/docs/core/sdks/python Commands to install the base SDK and the optional MCP ingestion support. ```bash pip install ratel-ai # upstream MCP ingestion (register_mcp_server) needs the extra: pip install 'ratel-ai[mcp]' ``` -------------------------------- ### Quickstart commands for coding agents Source: https://docs.ratel.sh/llms-full.txt Commands to be pasted directly into a coding agent for assessment or integration. ```text Run npx skills add ratel-ai/skills --all and use the skills to assess the agents in this codebase ``` ```text Run npx skills add ratel-ai/skills --all and use the skills to integrate Ratel in this project. ``` -------------------------------- ### Install Ratel SDK dependencies Source: https://docs.ratel.sh/docs/core/quickstart Commands to initialize a project and install necessary packages for TypeScript and Python environments. ```bash mkdir ratel-quickstart && cd ratel-quickstart npm init -y npm pkg set type=module npm install @ratel-ai/sdk@0.4.0 ai@^6 @ai-sdk/openai@^3 npm install --save-dev tsx ``` ```bash mkdir ratel-quickstart && cd ratel-quickstart python -m venv .venv source .venv/bin/activate python -m pip install "ratel-ai==0.4.0" "pydantic-ai>=1.0" ``` -------------------------------- ### Quickstart assessment Source: https://docs.ratel.sh/docs/core/skills-suite Command to run within a coding agent to perform a static codebase assessment. ```bash Run npx skills add ratel-ai/skills --all and use the skills to assess the agents in this codebase ``` -------------------------------- ### Install a specific skill Source: https://docs.ratel.sh/docs/core/skills-suite Installs only the specified skill into the current project. ```bash npx skills add ratel-ai/skills --skill ratel-assessment ``` -------------------------------- ### Install Ratel SDK Source: https://docs.ratel.sh/ Use npm to install the Ratel SDK for TypeScript projects. ```bash $npm install @ratel-ai/sdk ``` -------------------------------- ### Install OTLP Exporter for Python Source: https://docs.ratel.sh/docs/core/telemetry Install the required extra package to enable OTLP telemetry support in Python. ```bash pip install 'ratel-ai[otlp]' ``` -------------------------------- ### Invoke Tool Execution Example Source: https://docs.ratel.sh/docs/core/capability-tools Demonstrates the expected input format and the raw result returned upon successful tool execution. ```json // invoke_tool({ "toolId": "fs__read_file", "args": { "path": "/tmp/x" } }) { "contents": "contents of /tmp/x" } ``` -------------------------------- ### Search Capabilities via MCP Client Source: https://docs.ratel.sh/docs/local Example prompt for an MCP client to query available tools. ```text Call search_capabilities with the query "read a file" and show me the raw result. ``` -------------------------------- ### Launch local browser UI Source: https://docs.ratel.sh/docs/local Commands to start the ephemeral browser-based UI for managing servers, OAuth, and skills. ```bash ratel-mcp ui # ephemeral 127.0.0.1 port, opens your browser ratel-mcp ui --port 5731 # bind a specific port ratel-mcp ui --no-open # print the URL without launching a browser ``` -------------------------------- ### Skill suggestion output Source: https://docs.ratel.sh/docs/local/managing-skills Example output format for a skill suggestion. ```text auth-flows (score 2.31) How to add authentication: sessions, OAuth, form validation. ``` -------------------------------- ### Skill list output Source: https://docs.ratel.sh/docs/local/managing-skills Example output showing the list of skills currently managed by Ratel. ```text Ratel manages 2 skill(s): deploy-runbook (from /Users/you/.claude/skills/deploy-runbook) debugging-checklist (from /Users/you/.claude/skills/debugging-checklist) ``` -------------------------------- ### Skill activation output Source: https://docs.ratel.sh/docs/local/managing-skills Example output when running the activation command in dry-run mode. ```text would activate deploy-runbook would activate debugging-checklist ``` -------------------------------- ### init(options: InitOptions) Source: https://docs.ratel.sh/docs/core/api/sdk-typescript Initializes the telemetry client with OTLP configuration. You can provide an apiKey for automatic Bearer authentication or a custom endpoint and headers for advanced collector setups. ```APIDOC ## init(options: InitOptions) ### Description Initializes the telemetry client. An explicit `endpoint` overrides the default `RATEL_URL`, and `apiKey` is automatically added as an `Authorization: Bearer` header. ### Parameters - **apiKey** (string) - Optional - Ratel API key. - **endpoint** (string) - Optional - Full OTLP traces URL (e.g., /v1/traces). - **headers** (Record) - Optional - Extra headers merged into the request. - **serviceName** (string) - Optional - The service.name resource attribute. ``` -------------------------------- ### Example MCP configuration file Source: https://docs.ratel.sh/docs/local The structure of the JSON configuration file for defining stdio and HTTP MCP servers. ```json { "mcpServers": { "ev": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-everything"], "description": "filesystem & shell utilities" }, "remote": { "type": "http", "url": "https://example.com/mcp", "headers": { "Authorization": "Bearer xyz" } } } } ``` -------------------------------- ### ratel-mcp skill install-hook Source: https://docs.ratel.sh/docs/local/managing-skills Installs a UserPromptSubmit hook to the specified settings file, enabling automatic skill preloading. ```APIDOC ## ratel-mcp skill install-hook ### Description Adds a push-path hook to the configuration file that runs `skill preload-hook` on every prompt, allowing the agent to inject relevant skills. ### Parameters - **--scope** (string) - Optional - Target configuration file: 'user' (~/.claude/settings.json) or 'project' (/.claude/settings.json). Defaults to 'user'. - **--yes** (boolean) - Optional - Skip the confirmation prompt during installation. ### Request Example ratel-mcp skill install-hook --scope user ``` -------------------------------- ### Run Skill Suggestion Source: https://docs.ratel.sh/llms-full.txt Example usage of the command to find skills relevant to a specific prompt within the current directory. ```bash ratel-mcp skill suggest --prompt "build a login form" --cwd . --limit 3 ``` -------------------------------- ### Install Ratel SDK Source: https://docs.ratel.sh/docs/core/sdks/typescript Commands to add the Ratel SDK dependency to your project using pnpm or npm. ```bash pnpm add @ratel-ai/sdk # or npm install @ratel-ai/sdk ``` -------------------------------- ### Run Ratel MCP Server Source: https://docs.ratel.sh/docs/local Commands to start the server using explicit configuration files or automatic discovery modes. ```bash ratel-mcp serve --config ~/.ratel/config.json ratel-mcp serve ~/.ratel/config.json # positional form of the same thing ratel-mcp serve --auto-config # resolve the user, project, and local configs automatically ratel-mcp serve --auto-config --project-root /path/to/project # pin project and local scopes ``` -------------------------------- ### Verify Search Capabilities Source: https://docs.ratel.sh/docs/local/quickstart Example tool call to verify that Ratel search capabilities are functioning correctly. ```json Call Ratel's search_capabilities tool with: {"query":"look up current React framework documentation","topKTools":3,"topKSkills":1} Return the raw result. ``` -------------------------------- ### Install Ratel Local CLI Source: https://docs.ratel.sh/docs/local/quickstart Requires Node.js 20 or newer. Use the ratel-mcp binary for the import flow. ```bash npm install --global @ratel-ai/mcp-server@0.4.0 ratel-mcp --version ``` -------------------------------- ### Initialize Capability Tools Source: https://docs.ratel.sh/docs/core/sdks/python Create the search and invoke tools from a provided catalog. ```python search = search_capabilities_tool(catalog) # id == "search_capabilities" invoke = invoke_tool_tool(catalog) # id == "invoke_tool" ``` -------------------------------- ### Install OTLP Exporter for TypeScript Source: https://docs.ratel.sh/docs/core/telemetry Install the telemetry package required for OTLP exporting in TypeScript projects. ```bash npm install @ratel-ai/telemetry-otlp ``` -------------------------------- ### init(opts?) Source: https://docs.ratel.sh/docs/core/api/telemetry-otlp Initializes the global OpenTelemetry tracer provider with a Ratel OTLP exporter and returns a shutdown handle. ```APIDOC ## init(opts?) ### Description Wire an OTLP http/protobuf exporter, batch processor, and service name resource over a NodeTracerProvider. It registers the provider globally and returns a shutdown handle. ### Parameters - **opts** (InitOptions) - Optional - Configuration options for the telemetry initialization. ### Returns - **TelemetryHandle** - A handle containing a shutdown method to clean up the provider. ``` -------------------------------- ### init Source: https://docs.ratel.sh/llms-full.txt Initializes the global tracer provider with an OTLP exporter and batch processor. ```APIDOC ## init(*, api_key: str | None = None, endpoint: str | None = None, headers: Mapping[str, str] | None = None, service_name: str | None = None) -> TracerProvider ### Description Wire an OTLP http/protobuf exporter, batch processor, and service name resource. Registers the provider globally and returns it as a shutdown handle. ### Parameters - **api_key** (str) - Optional - API key for authentication. - **endpoint** (str) - Optional - Custom OTLP collector endpoint. - **headers** (Mapping[str, str]) - Optional - Custom HTTP headers. - **service_name** (str) - Optional - Name of the service for resource identification. ``` -------------------------------- ### Install and Uninstall Skill Hooks CLI Source: https://docs.ratel.sh/docs/local/managing-skills Commands to manage the installation and removal of skill hooks with optional scope and confirmation flags. ```bash ratel-mcp skill install-hook [--scope user|project] [--yes] ratel-mcp skill uninstall-hook [--scope user|project] ``` -------------------------------- ### Install Ratel MCP Plugin Source: https://docs.ratel.sh/docs/local/quickstart Commands to add and install the Ratel MCP plugin via Claude or Codex CLI tools. ```bash claude plugin marketplace add ratel-ai/ratel-mcp claude plugin install ratel-mcp@ratel ``` ```bash codex plugin marketplace add ratel-ai/ratel-mcp codex ``` -------------------------------- ### size() Source: https://docs.ratel.sh/llms-full.txt Get the number of registered skills. ```APIDOC ## size() ### Description Number of registered skills (distinct ids). ### Returns - **number** - The count. ``` -------------------------------- ### get(skillId) Source: https://docs.ratel.sh/llms-full.txt Look up a skill by id. ```APIDOC ## get(skillId) ### Description Look up a skill by id. ### Parameters - **skillId** (string) - Required - The id to look up. ### Returns - **Skill | undefined** - The skill as registered, or undefined for an unknown id. ``` -------------------------------- ### Run via CLI Source: https://docs.ratel.sh/docs/core/framework-integrations Commands to set the API key and execute the agent using uv. ```bash export OPENAI_API_KEY=sk-... # or ANTHROPIC_API_KEY, GEMINI_API_KEY, GROQ_API_KEY uv run main.py "send an email to alice@example.com saying ship it" ``` -------------------------------- ### get() Source: https://docs.ratel.sh/docs/core/api/sdk-typescript Look up a tool's searchable metadata. ```APIDOC ## get(toolId) ### Description Look up a tool's searchable metadata (no executor attached). ### Parameters #### Path Parameters - **toolId** (string) - Required - The id to look up. ### Returns - **Tool | undefined** - The metadata as registered, or undefined for an unknown id. ``` -------------------------------- ### Registering Skills and Wiring Search Tools Source: https://docs.ratel.sh/docs/core/agent-skills Register skills with dependencies and initialize the search and content retrieval tools. ```python from ratel_ai import Skill, SkillCatalog, ToolCatalog, get_skill_content_tool, search_capabilities_tool catalog = ToolCatalog() # ...register tools... skills = SkillCatalog() skills.register( Skill( id="vercel-deploy", name="vercel-deploy", description="How to deploy to Vercel: env vars, preview vs production, rollbacks.", tags=["deploy", "ship to production"], # indexed: query terms tools=["vercel__deploy", "fs__read_file"], # dependency edge, not indexed metadata={"stacks": ["next", "vercel"]}, # carried context, never matched body="## Deploying to Vercel\n1. ...", ) ) search = search_capabilities_tool(catalog, skills) # 2nd argument: skills bucket is live load = get_skill_content_tool(skills) # id: "get_skill_content" ``` ```typescript import { SkillCatalog, ToolCatalog, getSkillContentTool, searchCapabilitiesTool } from "@ratel-ai/sdk"; const catalog = new ToolCatalog(); // ...register tools... const skills = new SkillCatalog(); skills.register({ id: "vercel-deploy", name: "vercel-deploy", description: "How to deploy to Vercel: env vars, preview vs production, rollbacks.", tags: ["deploy", "ship to production"], // indexed: query terms tools: ["vercel__deploy", "fs__read_file"], // dependency edge, not indexed metadata: { stacks: ["next", "vercel"] }, // carried context, never matched body: "## Deploying to Vercel\n1. ...", }); const search = searchCapabilitiesTool(catalog, skills); // 2nd argument: skills bucket is live const load = getSkillContentTool(skills); // id: "get_skill_content" ``` -------------------------------- ### init(opts?) Source: https://docs.ratel.sh/llms-full.txt Wires an OTLP http/protobuf exporter, batch processor, and service name resource over a NodeTracerProvider. It registers the provider globally and returns a shutdown handle. ```APIDOC ## init(opts?) ### Description Wire an OTLP http/protobuf exporter + batch processor + service.name resource over a NodeTracerProvider, register it as the global provider, and return a shutdown handle. ### Parameters - **opts** (InitOptions) - Optional - Configuration options for initialization. ### Returns - **TelemetryHandle** - A handle to manage the shutdown of the telemetry provider. ``` -------------------------------- ### get(skillId) Source: https://docs.ratel.sh/docs/core/api/sdk-typescript Retrieves a skill object by its ID. ```APIDOC ## get(skillId) ### Description Looks up a registered skill by its ID. ### Parameters - **skillId** (string) - Required - The ID to look up. ### Returns - **Skill | undefined** - The skill object if found, otherwise undefined. ``` -------------------------------- ### Register and search tools using BM25 Source: https://docs.ratel.sh/docs/core/api/core-rust Demonstrates initializing a ToolRegistry, registering tools with JSON schemas, and performing a BM25 search. ```rust use ratel_ai_core::{Tool, ToolRegistry}; let mut registry = ToolRegistry::new(); registry.register(Tool { id: "read_file".into(), name: "read_file".into(), description: "Read a file from disk".into(), input_schema: serde_json::json!({ "properties": { "path": { "type": "string", "description": "absolute path" } } }), output_schema: serde_json::json!({}), }); registry.register(Tool { id: "send_email".into(), name: "send_email".into(), description: "Send an email to a recipient".into(), input_schema: serde_json::json!({}), output_schema: serde_json::json!({}), }); let hits = registry.search("read a file", 5); assert_eq!(hits[0].tool_id, "read_file"); ``` -------------------------------- ### get(toolId) Source: https://docs.ratel.sh/llms-full.txt Retrieves the searchable metadata for a specific tool by its ID. ```APIDOC ## get(toolId) ### Description Look up a tool's searchable metadata (no executor attached). ### Parameters - **toolId** (string) - Required - The id to look up. ### Returns - **Tool | undefined** - The metadata as registered, or undefined for an unknown id. ``` -------------------------------- ### Get Tool Metadata Source: https://docs.ratel.sh/docs/core/api/sdk-python Retrieves the metadata-only Tool object for a given identifier. ```python get(tool_id: str) -> Tool | None ``` -------------------------------- ### Import MCP servers Source: https://docs.ratel.sh/docs/local/quickstart Run the import wizard in the project directory to migrate existing native MCP servers to Ratel Local. ```bash ratel-mcp mcp import --agent claude-code ``` ```bash ratel-mcp mcp import --agent codex ``` -------------------------------- ### Get Executable Tool Source: https://docs.ratel.sh/docs/core/api/sdk-python Retrieves the ExecutableTool object, which includes both metadata and the execution handler. ```python get_executable(tool_id: str) -> ExecutableTool | None ``` -------------------------------- ### Register and Invoke Tools with ToolCatalog Source: https://docs.ratel.sh/docs/core/sdks/python Demonstrates the full lifecycle of a tool including registration, semantic search, embedding generation, and invocation. ```python import asyncio from ratel_ai import ExecutableTool, ToolCatalog async def main() -> None: catalog = ToolCatalog() # ToolCatalog(trace=None, method="bm25") catalog.register( # metadata + execute ExecutableTool( id="echo", name="echo", description="Repeat a message back to the caller.", input_schema={"properties": {"text": {"type": "string"}}}, output_schema={"properties": {"text": {"type": "string"}}}, execute=lambda args: {"text": args["text"]}, ) ) hits = catalog.search("repeat a message", 5) # → list[SearchHit] assert hits[0].tool_id == "echo" catalog.build_embeddings() # pre-compute semantic/hybrid embeddings assert catalog.has("echo") # → bool assert catalog.get("echo") is not None # → Tool | None assert catalog.get_executable("echo") is not None print(await catalog.invoke("echo", {"text": "hello"})) catalog.drain_trace_events() # → list[dict]; memory sink only asyncio.run(main()) ``` -------------------------------- ### Register a Tool Catalog in Python Source: https://docs.ratel.sh/llms-full.txt Create a catalog and register an executable tool, then expose it via capability tools. ```python from ratel_ai import ToolCatalog, ExecutableTool, search_capabilities_tool, invoke_tool_tool catalog = ToolCatalog() catalog.register( ExecutableTool( id="read_file", name="read_file", description="Read a file from local disk.", input_schema={"properties": {"path": {"type": "string"}}}, output_schema={"properties": {"contents": {"type": "string"}}}, execute=lambda args: {"contents": open(args["path"]).read()}, ) ) # The full catalog stays out of context; the agent reaches it via these two. search = search_capabilities_tool(catalog) # id == "search_capabilities" invoke = invoke_tool_tool(catalog) # id == "invoke_tool" ``` -------------------------------- ### Agent tool execution flow Source: https://docs.ratel.sh/docs/core/quickstart Example of the model discovering and invoking a weather tool during a turn. ```text → search_capabilities({"query":"weather in Rome"}) → invoke_tool({"toolId":"get_weather","args":{"city":"Rome"}}) It's 24°C and sunny in Rome. ``` -------------------------------- ### Initialize Capability Tools Source: https://docs.ratel.sh/docs/core/sdks/typescript Create the search and invoke tools from a catalog to enable agent self-service. ```typescript const search = searchCapabilitiesTool(catalog); // id: "search_capabilities" (SEARCH_CAPABILITIES_ID) const invoke = invokeToolTool(catalog); // id: "invoke_tool" (INVOKE_TOOL_ID) ``` -------------------------------- ### Retrieve Skill Content Source: https://docs.ratel.sh/docs/core/agent-skills Example of calling get_skill_content to fetch the body of a specific skill by its ID. ```javascript get_skill_content({ "skillId": "vercel-deploy" }) ``` -------------------------------- ### Configure Telemetry in Python Source: https://docs.ratel.sh/docs/core/telemetry Initialize the tracer provider with an OTLP endpoint and API key. Ensure the provider is shut down to flush traces on exit. ```python import os from ratel_ai import configure_telemetry provider = configure_telemetry( endpoint=os.environ.get("RATEL_URL", "https://cloud.ratel.sh/v1/traces"), api_key=os.environ["RATEL_API_KEY"], ) # ... run your agent: every ratel.* / execute_tool span now exports ... provider.shutdown() # flush the exporter on exit (provider.force_flush() mid-run) ``` -------------------------------- ### init(options: InitOptions) Source: https://docs.ratel.sh/llms-full.txt Initializes the Ratel telemetry provider for a greenfield application. ```APIDOC ## init(options: InitOptions) ### Description Initializes the Ratel telemetry provider. Returns a TelemetryHandle to manage the lifecycle of the exporter. ### Parameters - **options** (InitOptions) - Required - Configuration object for the telemetry provider. ### InitOptions Properties - **apiKey** (string) - Optional - Ratel API key; sent as Authorization: Bearer . - **endpoint** (string) - Optional - Full OTLP traces URL (incl. /v1/traces). Defaults to RATEL_URL. - **headers** (Record) - Optional - Extra headers merged onto the request. - **serviceName** (string) - Optional - service.name resource attribute. ### Response - **TelemetryHandle** - Object containing a shutdown() method to flush and stop the exporter. ``` -------------------------------- ### Manage Claude Code statusline Source: https://docs.ratel.sh/docs/local Commands to install or uninstall the Ratel statusline into the Claude Code configuration. ```bash ratel-mcp statusline install # write the statusLine entry into ~/.claude/settings.json ratel-mcp statusline uninstall # remove it, only when Ratel owns it ``` -------------------------------- ### InitOptions Source: https://docs.ratel.sh/docs/core/api/telemetry-typescript Configuration options for the init() function used to initialize the telemetry exporter. ```APIDOC ## InitOptions ### Description Configuration object passed to the init() function to set up the telemetry exporter. ### Properties - **apiKey** (string) - Optional - Ratel API key; sent as Authorization: Bearer . - **endpoint** (string) - Optional - Full OTLP traces URL (incl. /v1/traces). Defaults to RATEL_URL. - **headers** (Record) - Optional - Extra headers merged onto the request before the apiKey Bearer header. - **serviceName** (string) - Optional - service.name resource attribute. Defaults to DEFAULT_SERVICE_NAME. ``` -------------------------------- ### Skill Hook Settings Configuration Source: https://docs.ratel.sh/docs/local/managing-skills The JSON structure appended to the settings file when a skill hook is installed. ```json { "hooks": { "UserPromptSubmit": [ { "hooks": [ { "type": "command", "command": "ratel-mcp skill preload-hook", "timeout": 10 } ] } ] } } ``` -------------------------------- ### init() Source: https://docs.ratel.sh/llms-full.txt Initializes the telemetry exporter. This function accepts configuration options to define the API key, endpoint, and headers for OTLP trace collection. ```APIDOC ## init(options: InitOptions) ### Description Initializes the telemetry exporter. This function is provided by @ratel-ai/telemetry-otlp and configures the OTLP exporter settings. ### Parameters #### InitOptions - **apiKey** (string) - Optional - Ratel API key; sent as Authorization: Bearer . - **endpoint** (string) - Optional - Full OTLP traces URL (incl. /v1/traces). Defaults to RATEL_URL. - **headers** (Record) - Optional - Extra headers merged onto the request (before the apiKey Bearer header). - **serviceName** (string) - Optional - service.name resource attribute. Defaults to DEFAULT_SERVICE_NAME. ``` -------------------------------- ### ratelSpanProcessor(opts?) Source: https://docs.ratel.sh/docs/core/api/telemetry-otlp Creates a BatchSpanProcessor configured with the Ratel OTLP exporter for use in custom provider setups. ```APIDOC ## ratelSpanProcessor(opts?) ### Description Creates a BatchSpanProcessor over the Ratel OTLP exporter that forwards spans based on the provided filter. Use this when you want to add Ratel telemetry to an existing provider without global side effects. ### Parameters - **opts** (RatelSpanProcessorOptions) - Optional - Configuration options including the span filter. ### Returns - **SpanProcessor** - A configured span processor instance. ``` -------------------------------- ### Build search_capabilities tool Source: https://docs.ratel.sh/docs/core/api/sdk-python Creates a unified discovery tool for both tools and skills. Recommended for new implementations over search_tools_tool. ```python search_capabilities_tool(catalog: ToolCatalog, skill_catalog: SkillCatalog | None = None, *, upstream_servers: Sequence[UpstreamServerInfo] | None = None) -> ExecutableTool ``` -------------------------------- ### Configure Ratel Local as a Plugin Source: https://docs.ratel.sh/docs/local Commands to add and install the Ratel plugin for Claude Code and Codex environments. ```bash # Claude Code claude plugin marketplace add ratel-ai/ratel-mcp claude plugin install ratel-mcp@ratel # then restart Claude Code or run /reload-plugins # Codex codex plugin marketplace add ratel-ai/ratel-mcp # then install "Ratel Local" from the "Ratel" marketplace inside Codex ``` -------------------------------- ### Initialize SkillRegistry Source: https://docs.ratel.sh/llms-full.txt Instantiates the metadata-only BM25 index for the skill corpus. ```python SkillRegistry() ```