canonical: https://jentic.com/apis/made.app/made

# Made App Made Agent Access API

The Made Agent Access API carries JSON-RPC 2.0 requests to the remote agent tool server that Made runs for AI clients. A client initializes a session, lists the tools Made currently offers with tools/list, and invokes one with tools/call by passing a tool name and an arguments object, then reads results as JSON or as a Server-Sent Events stream. Sessions are tracked with a session id header returned at initialization and can be closed explicitly. A public protected-resource metadata document tells a client which authorization server and scopes, such as media:read, generations:write, and billing:read, the endpoint expects.

## For AI agents

Call the tools Made exposes to agents over JSON-RPC: initialize a session, list available tools, invoke a tool by name with arguments, and stream results, authorized with Made OAuth.

## Scope

Does not publish a fixed REST endpoint per tool, and does not handle account sign-up or token management. Use for reaching Made's agent tools over JSON-RPC only.

## Capabilities

- Initialize a JSON-RPC 2.0 session with Made and receive an Mcp-Session-Id for later calls
- List the tools Made currently offers with a tools/list request instead of hardcoding them
- Invoke a Made tool with a tools/call request carrying the tool name and its arguments object
- Open a Server-Sent Events stream to receive server-to-client messages for a live session
- Discover the authorization server and supported scopes from the public OAuth protected-resource metadata

## Use cases

### AI agent calling Made tools through Jentic

A developer wants their agent to use Made's tools without hand-building the OAuth 2.1 PKCE flow. Through Jentic the agent searches for 'call a Made tool', loads the JSON-RPC request operation, and sends a tools/list request to see what is available before a tools/call with the chosen tool name and arguments. The OAuth token is injected at call time by the developer's own instance.

Example prompt: POST a JSON-RPC initialize request, then a tools/list request with the returned Mcp-Session-Id, then a tools/call request naming one listed tool with its arguments

### Runtime tool discovery

Made asks clients to discover tools at runtime rather than from a fixed list, so the set can change without a client update. A tools/list request returns the current tools for the session, and a client can cache them for the length of that session. This keeps an integration in step with whatever Made currently offers.

Example prompt: Send a JSON-RPC request with method tools/list on an initialized session and return each tool name it lists

### OAuth configuration discovery

Before requesting a token, a client needs the authorization server and the scopes the resource accepts. GET on the well-known oauth-protected-resource path is public and returns resource, authorization_servers, and scopes_supported, so a client can build its authorization code request with PKCE from live metadata rather than copied values.

Example prompt: Call GET /.well-known/oauth-protected-resource and report the authorization_servers and scopes_supported values

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/mcp` | Send a JSON-RPC request |
| GET | `/mcp` | Open a Server-Sent Events stream |
| DELETE | `/mcp` | Close a session |
| GET | `/.well-known/oauth-protected-resource` | Get OAuth protected-resource metadata |

## Key resources

- **JSON-RPC requests** — initialize, tools/list, tools/call, and other JSON-RPC 2.0 messages sent to the Made tool server
- **Sessions** — Sessions identified by the Mcp-Session-Id header, with an event stream and explicit close
- **OAuth protected-resource metadata** — Public document listing the resource, authorization servers, and supported scopes

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 85 / 100
  - Developer Experience & Jentic Compatibility: 61 / 100
  - AI-Readiness & Agent Experience: 46 / 100
  - Agent Usability: 94 / 100
  - Security: 90 / 100
  - AI Discoverability: 63 / 100
- **View full report:** https://jentic.com/apis/made.app/made/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Made by hand means running an OAuth 2.1 authorization code flow with PKCE, refreshing tokens, and carrying a session id header across JSON-RPC calls. Through Jentic you install once, import Made from the API Directory, authorize once, and your agent calls it.
- **Permission scoping:** Made sends every tool call to the same JSON-RPC operation with the tool name in the request body, so rules bound which operations your agent may call, such as sending requests or closing sessions, not which Made tool it invokes. You choose the operations it may call, so session close is not included unless you add it.
- **Credential handling:** Your Made OAuth token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'call a Made tool' or 'list Made tools', and Jentic returns the matching Made operation with its input schema, including the JSON-RPC request shapes, so the agent builds a valid call first time.

## Related APIs

- **Leonardo.Ai** — AI image generation through a documented REST surface
- **Ideogram** — Text-to-image generation API with documented operations

## FAQ

### What authentication does the Made Agent Access API use?

Made declares OAuth 2.1 with the authorization code flow and PKCE in its OpenAPI spec, with tokens from www.made.app and scopes such as openid, offline_access, media:read, media:write, generations:read, generations:write, and billing:read. The session operations require the token, while GET /.well-known/oauth-protected-resource is public. Through Jentic the token is stored by your own instance and attached at call time.

### Is there a Made MCP server?

Yes. Made runs an official remote MCP server, and this spec describes its transport. You can also connect it through Jentic: your OAuth token is injected at call time by your self-hosted instance instead of living in a client config file, your rules decide which operations the agent may call, each call the agent makes is logged, and connecting your next API is an import rather than another install and auth setup.

### How do I find out which tools Made offers?

Send a JSON-RPC request with method tools/list on an initialized session. Made asks clients to discover tools this way at runtime, so the list reflects what Made currently provides rather than a fixed set in the spec.

### What are the rate limits for the Made Agent Access API?

The OpenAPI spec does not specify rate limits. Check the Made connector documentation at https://www.made.app/mcp for current limits.

### How do I call a Made tool through Jentic?

Search Jentic for 'call a Made tool', load the JSON-RPC request operation, and send initialize, then tools/list, then tools/call with the tool name and arguments, reusing the Mcp-Session-Id header between calls. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Made Agent Access API?

Partly. For example, a rule that allows the JSON-RPC request and event-stream operations but not session close lets the agent work in a session without ending it. Tool names travel inside the request body, so a rule cannot allow one Made tool and block another; narrow that with the OAuth scopes you grant, such as read-only media:read. Jentic logs each call the agent makes.
