nvoke

Use case

Give your agent a real URL.

LLM agents in Claude, OpenAI, or any framework need tools to be useful. A tool is just an HTTP endpoint with a declared schema. nvoke is the fastest way to host one.

// Tool: get_weather(city: string)
export default async function (req) {
  const { city } = req.body;
  if (!city) return new Response("city required", { status: 400 });

  const res = await fetch(
    `https://api.weather.example/current?q=${encodeURIComponent(city)}`,
    { headers: { "x-api-key": process.env.WEATHER_API_KEY } }
  );
  const data = await res.json();

  return {
    city,
    temp_c: data.temp_c,
    condition: data.condition
  };
}
A weather tool. Register the URL with your agent framework.

The tool-use pattern, unpacked

Most LLM agent frameworks expose tools the same way: you declare a name, a description, and a JSON schema for inputs. When the model decides to use the tool, the framework sends an HTTP request to a URL you configure, passing the model-chosen arguments. Whatever you return comes back into the conversation.

The body of the tool — what it actually does — is where the interesting work happens: hit an internal database, search an index, call an external API, do some math. That is exactly the kind of small, stateless function nvoke is built for.

Why nvoke works well for tools

Tools need three things: a stable URL, a fast path from code change to deployed endpoint, and clean logs for debugging. Agents make surprising calls with surprising arguments, and you will spend real time reading the logs to figure out why the agent gave your tool an empty string or a date in 2031. nvoke captures every invocation with the full request body ready to inspect.

The other property that matters: secrets. Your tool probably needs a third-party API key. You do not want that key in the agent prompt, the client, or a user-facing config. nvoke holds the key server-side and exposes it only to the tool endpoint.

MCP servers

If you are using Model Context Protocol, you can expose a nvoke function as an MCP tool by returning a manifest from a GET request and handling tool calls on POST. A full MCP example lives in the docs.

Ship an agent tool.

Write the function. Paste the URL into your agent config. Let the model figure out when to call it.