@@ -17,7 +17,7 @@ Monorepo for Transloadit SDKs, shared packages, and the MCP server.
1717
1818- ` @transloadit/node ` — Node.js SDK + CLI. See ` packages/node/README.md ` .
1919- ` transloadit ` — Stable unscoped package (built from ` @transloadit/node ` ).
20- - ` @transloadit/mcp-server ` — MCP server (Streamable HTTP + stdio).
20+ - ` @transloadit/mcp-server ` — MCP server (Streamable HTTP + stdio). See ` packages/mcp-server/README.md ` .
2121- ` @transloadit/types ` — Shared TypeScript types.
2222- ` @transloadit/utils ` — Shared utilities.
2323- ` @transloadit/zod ` — Zod schemas for Transloadit APIs.
@@ -45,109 +45,9 @@ const result = await client.createAssembly({
4545})
4646```
4747
48- ### MCP server (local)
48+ ### MCP server
4949
50- ``` bash
51- npx @transloadit/mcp-server stdio
52- ```
53-
54- ``` bash
55- npx @transloadit/mcp-server http --host 127.0.0.1 --port 5723
56- ```
57-
58- ## MCP server design
59-
60- The MCP server is thin glue over ` @transloadit/node ` and shared libraries. It exposes a small,
61- agent-friendly tool surface while delegating all heavy lifting (uploads, polling, linting, resumes)
62- to the SDK.
63-
64- ### Transports
65-
66- - Streamable HTTP at ` /mcp ` .
67- - stdio transport for local execution.
68- - No legacy SSE.
69-
70- ### Auth model
71-
72- ** Hosted (api2.transloadit.com/mcp)**
73-
74- - Call ` POST https://api2.transloadit.com/token ` with Auth Key/Secret (HTTP Basic Auth).
75- - Use ` Authorization: Bearer <access_token> ` on API2 requests.
76- - Bearer tokens ** satisfy signature auth** ; signature checks are enforced only for key/secret
77- requests.
78-
79- ** Self-hosted**
80-
81- - stdio and localhost HTTP require no MCP auth by default.
82- - Non-localhost HTTP requires ` TRANSLOADIT_MCP_TOKEN ` .
83- - API calls use ` TRANSLOADIT_KEY ` + ` TRANSLOADIT_SECRET ` , or bearer tokens if provided.
84-
85- ### Configuration
86-
87- Environment:
88-
89- - ` TRANSLOADIT_KEY `
90- - ` TRANSLOADIT_SECRET `
91- - ` TRANSLOADIT_MCP_TOKEN `
92- - ` TRANSLOADIT_ENDPOINT ` (optional, default ` https://api2.transloadit.com ` )
93-
94- CLI:
95-
96- - ` transloadit-mcp http --host 127.0.0.1 --port 5723 --endpoint https://api2.transloadit.com `
97- - ` transloadit-mcp http --config path/to/config.json `
98-
99- ### Input files
100-
101- ``` ts
102- export type InputFile =
103- | { kind: ' path' ; field: string ; path: string }
104- | {
105- kind: ' base64'
106- field: string
107- base64: string
108- filename: string
109- contentType? : string
110- }
111- | {
112- kind: ' url'
113- field: string
114- url: string
115- filename? : string
116- contentType? : string
117- }
118- ` ` `
119-
120- ### Limits
121-
122- - Hosted default request body limit: **1 MB** (JSON).
123- - Hosted default ` maxBase64Bytes ` : **512_000** (decoded bytes).
124- - Self-hosted default request body limit: **10 MB** (configurable).
125-
126- ### URL inputs
127-
128- - By default URL files are **downloaded and uploaded via tus** (no instruction mutation).
129- - If instructions already contain an ` /http /import ` step, the MCP server sets/overrides its ` url ` .
130- - If multiple URLs and a single ` /http /import ` step exists, it supplies a ` url ` array.
131-
132- ### Resume behavior
133-
134- If ` assembly_url ` is provided, the MCP server resumes uploads using Assembly status
135- ( ` tus_uploads ` + ` uploads ` ). This requires stable, unique ` field ` names and file metadata
136- ( ` filename ` + ` size ` ). Only **path-based** inputs resume; non-file inputs start fresh uploads.
137-
138- ### Tool surface
139-
140- - ` transloadit_create_assembly `
141- - ` transloadit_get_assembly_status `
142- - ` transloadit_wait_for_assembly `
143- - ` transloadit_validate_assembly `
144- - ` transloadit_list_robots `
145- - ` transloadit_get_robot_help `
146- - ` transloadit_list_golden_templates `
147-
148- ### Roadmap
149-
150- - Next.js Claude Web flow to mint and hand off bearer tokens for MCP.
50+ See ` packages/mcp-server/README.md ` for MCP setup, auth, and tool docs.
15151
15252## Development
15353
0 commit comments