Agents that discover what they can do, rather than being told, need a machine-readable description of the surface. There are three, and they answer different questions.
The tool manifest#
GET /v1/manifest describes the hosted tools and the API base. It needs no authentication, so an agent can read it before it has credentials.
curl https://ai.upfyn.com/v1/manifest
/v1/mcp/tools is a redirect, not an endpoint
It issues a 308 to/v1/manifest. Some older documentation presents it as a route in its own right — a client that does not follow redirects will get nothing useful from it.Tools we run for you#
GET /v1/tools lists what your account can invoke. These execute on our side, so you do not implement them.
curl https://ai.upfyn.com/v1/tools \-H "Authorization: Bearer $UPFYN_API_KEY"
You can call one directly, without going through a model:
curl https://ai.upfyn.com/v1/tools/n8n__web_search \-H "Authorization: Bearer $UPFYN_API_KEY" \-H "Content-Type: application/json" \-d '{ "query": "train times Delhi to Jaipur" }'
- An unknown name returns
404 unknown_tool. - Web search is the main one. All three models report
web_search: true, so a model can also reach it during a normal turn. - Hosted tool calls are billed like any other request.
The OpenAPI document#
GET /v1/openapi.json is the full specification — OpenAPI 3.1, with the live model ids enumerated. Also unauthenticated.
curl https://ai.upfyn.com/v1/openapi.json
| Use it to | How |
|---|---|
| Generate a client | Feed it to any OpenAPI generator. |
| Explore interactively | Load it into Swagger UI or Postman. |
| Give an agent the API | Some agent frameworks consume an OpenAPI document directly as a toolset. |
One model, no key#
GET /v1/models/{id}/schema also needs no authentication. It exists so a client can discover a model’s context window, modalities and capabilities before it has been given a key — useful when the thing choosing the model and the thing holding the credentials are different components.
Which to use#
| You want | Read |
|---|---|
| The hosted tools an agent can call | /v1/manifest |
| The tools THIS account can call | /v1/tools |
| Every endpoint, fully typed | /v1/openapi.json |
| What one model supports | /v1/models/{id}/schema |
Your own MCP servers are a desktop feature
Connecting external MCP servers to the assistant is configured in the desktop app and the MCP page, not through this API. This page is about what the API exposes to your agent.