tools

Derive LLM tools from Controllers, RPC modules, and OpenAPI mixins.

52|Updated Jul 12, 2023
One-click install
npx skills add https://github.com/finom/vovk --skill tools-finom
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tools
Source: https://github.com/finom/vovk/tree/main/packages/claude-plugin/skills/tools
Command: npx skills add https://github.com/finom/vovk --skill tools-finom

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Vovk.ts LLM tools empower developers to turn existing server code into LLM-consumable tools by deriving tools from Controllers, RPC modules, and OpenAPI mixins, or by creating standalone tools without controllers. This skill provides a unified workflow for building, formatting, and dispatching tools that work across HTTP and MCP backends.

Core Features & Use Cases

  • Derive tools from Controllers, RPC modules, and OpenAPI mixins using deriveTools({ modules }). The resulting tools can be consumed by OpenAI/Anthropic function calling or MCP servers, and can be dispatched via toolsByName for in-process execution.
  • Create standalone tools with createTool({ … }), including input/output schemas, execute handlers, and optional formatting via ToModelOutput, enabling non-controller code (calculators, SDK wrappers, file ops) to participate in the tool ecosystem.
  • Configure per-tool metadata and control visibility via @operation.tool, hidden flags, and naming conventions to tailor LLM-facing surfaces while maintaining a single underlying execution path.
  • Integrate with MCP by selecting ToModelOutput.MCP, enabling multi-block, annotated content and optional per-call overrides for combined HTTP/LLM workflows.
  • Use meta/context, withDefaults for auth-in-advance, and support for mixins, ensuring a cohesive tool surface across a Next.js project.

Quick Start

Expose your API surface to an LLM by configuring deriveTools or createTool and test function-calling integration.

Frequently Asked Questions about tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I turn existing API controllers into LLM function-calling tools?

You can turn API controllers into LLM function-calling tools by using deriveTools to generate a tool array and toolsByName map from Controllers, RPC modules, and OpenAPI mixins for dispatch.

Can I create standalone LLM tools without using controllers?

Yes, you can create standalone LLM tools without controllers by using createTool to build bespoke utilities with explicit input/output schemas, execute handlers, and optional ToModelOutput formatting.

Does this approach support generating tools for both OpenAI and Anthropic integrations?

Yes, derived and standalone tools support a ToModelOutput formatter that prepares tool definitions and responses for OpenAI, Anthropic, and MCP server integrations.

How do I handle input parameters like query and body when exposing endpoints to an LLM?

LLM tools rely on a nested input shape that explicitly separates body, query, and params, ensuring the language model provides correctly structured arguments for execution.

What is the best way to control which API operations are visible to the LLM?

You can control LLM visibility by applying per-tool customization through operation decorations, hidden flags, and naming conventions to tailor the exposed surface while maintaining one execution path.

Can I run HTTP and MCP workflows from the same tool definitions?

Yes, selecting ToModelOutput.MCP enables multi-block annotated content with optional per-call overrides, allowing combined HTTP and LLM workflows to share a single underlying tool ecosystem.