Skip to main content
Glama

Provision App

provision_app

Set up Harny for an app with no account: memory, connected accounts, actions and the action record behind one key; makes a new app and its key, as POST /v1/auth/provision does. The answer carries the app key once, and the assistant is told to put it in the owner's secret store and nowhere else. Needs no key; it is the only tool that does not. To save and recall, call the REST API with the app key it returns (POST /v1/users, then POST /v1/memory/ingest and POST /v1/memory/recall), steps in https://harny.ai/auth.md.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "app_name": "<app_name>"
    },
    "name": "provision_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
app_nameYesA name for the new app, such as the product's name.
customersNoWho the app's customers are, in one or two sentences. Stored with the app's objective; the owner can change it.
objectiveNoWhat the app does, in one or two sentences, in the business's words. Stored as the app's objective; the owner can change it.
model_presetNoRetired and ignored. Harny names no model: the business sets its own provider and model.
contact_emailNoOptional. A contact address for platform messages. Leave it out when you do not have one: the app's owner gives their sign-in address when they claim the app.
assistant_nameNoOptional. Your own name: the product you run as, the way you would say who you are. The app's owner sees it on their Home as who set the app up. Leave it out if you do not know it; Harny never fills it in for you.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / model_preset / description
      Previous value: -"Optional. The model preset chosen for this app: cost_first, quality_first or regulated. It is stored with the app now, so Harny's own processing of what the app loads follows it from the first fact. The owner can change it after the claim."New value: +"Retired and ignored. Harny names no model: the business sets its own provider and model."
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the critical behavioral trait that the app key is returned only once and must be stored in the owner's secret store and nowhere else. It also confirms the no-auth prerequisite and hands off the post-provision workflow with specific endpoints, which the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the one-time key warning are front-loaded, and every sentence carries information about creation, auth, or next steps. It is dense and runs long in a single block, and the REST endpoint list slightly dilutes focus, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain the response, and it does — the answer carries the app key exactly once. It also supplies the necessary follow-up path for a newly provisioned app. Minor gap: it does not describe any other response fields or the state of the newly created app.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and every parameter already carries a detailed description including the retired model_preset and optional contact_email/assistant_name semantics. The tool description adds no per-parameter meaning, so the schema does the heavy lifting — the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a concrete verb and resource — 'makes a new app and its key' — and frames the outcome ('memory, connected accounts, actions and the action record behind one key'), so an agent knows exactly what is created. It also names the equivalent REST endpoint, anchoring the tool to a known operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the selecting condition clearly: use this for an app with no account, and it 'needs no key; it is the only tool that does not,' which implicitly excludes every authenticated tool. It also routes follow-up work (save/recall) to the REST API rather than this tool. It stops short of an explicit 'do not use when' statement, but no sibling alternatives exist to disambiguate against.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.