Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
9bcb487
feat: scaffold MCP server with robot tools
kvz Feb 1, 2026
1b10e0d
feat: add MCP create assembly tool
kvz Feb 1, 2026
e1cbbf2
feat: add MCP assembly status tools
kvz Feb 1, 2026
f3782cc
feat: add MCP golden templates
kvz Feb 1, 2026
83455f1
feat: add streamable http transport
kvz Feb 1, 2026
feaab70
docs: tighten MCP server spec
kvz Feb 1, 2026
9f1f816
feat: add robot catalog helpers
kvz Feb 1, 2026
6946fff
feat: add upload behavior controls
kvz Feb 1, 2026
3e11cf9
feat: add input file prep helper
kvz Feb 1, 2026
2ab1f02
docs: update MCP todo status
kvz Feb 1, 2026
7c008cb
chore: apply lint fixes
kvz Feb 1, 2026
55ed238
test: add resume assembly e2e
kvz Feb 1, 2026
5dafe88
test: cover lint issue formatting
kvz Feb 1, 2026
2a9375a
test: cover base64 limit error
kvz Feb 1, 2026
14089d7
test: cover url import injection
kvz Feb 1, 2026
edc5648
feat: download URL inputs by default
kvz Feb 1, 2026
4e8ef5e
feat: allow multiple URLs per import step
kvz Feb 1, 2026
d56b417
test: cover robot helpers
kvz Feb 1, 2026
823e0b1
chore: add mcp-server to knip config
kvz Feb 1, 2026
8b844da
chore: update transloadit parity baseline
kvz Feb 1, 2026
74a9182
feat(mcp-server): support bearer tokens
kvz Feb 1, 2026
9c28990
docs(mcp): note signature auth with bearer
kvz Feb 1, 2026
16364ed
docs: refresh README and MCP todo
kvz Feb 1, 2026
57aa98a
w
kvz Feb 1, 2026
dc4c12d
refactor(mcp-server): share http handler logic
kvz Feb 1, 2026
556dfa9
fix: harden input handling
kvz Feb 1, 2026
5fc59d9
feat: allow private URL downloads by default
kvz Feb 1, 2026
cba9a35
docs(node): document prepareInputFiles options
kvz Feb 1, 2026
d150999
fix: trust assembly url for cancel
kvz Feb 1, 2026
b5f4c3e
feat(mcp-server): add sev-logger with redaction
kvz Feb 2, 2026
288ea0d
chore: format transloadit baseline
kvz Feb 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .ai/skills/council-refactor-ideas/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: council-refactor-ideas
description:
Run `~/code/dotfiles/bin/council.ts refactor` to get a multi-agent refactoring ideas, evaluate
proposals, and bring them to the human.
---

# Council Refactoring Ideas

## Overview

Run the local `council.ts refactor` script to get multi-agent refactoring brainstorms, then triage
and address valid issues before final validation and PR creation.

## Workflow

Run `~/code/dotfiles/bin/council.ts refactor` to get some more refactoring ideas and see which ones
make sense.
53 changes: 53 additions & 0 deletions .ai/skills/council-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: council-review
description:
Run `~/code/dotfiles/bin/council.ts review` to perform a multi-model review, evaluate findings,
fix valid issues (with tests when possible), add clarifying comments for invalid findings, then
run required checks. Use before PR creation or when the user asks for a deep review.
---

# Council Review

## Overview

Run the local `council.ts review` script to get multi-model review findings, then triage and address
valid issues before final validation and PR creation.

## Workflow

### 1) Preflight

- Confirm the script exists and is executable: `~/code/dotfiles/bin/council.ts`.
- Do not use `--post` unless explicitly asked.
- Expect a long runtime (30+ minutes); so set any command timeout on your side to >= 45 minutes.

### 2) Run the review

- Run: `~/code/dotfiles/bin/council.ts review` from inside the repository we were working on.
- Capture the consolidated output (P0-P3 items or "No issues found.").

### 3) Triage findings

For each item:

- **Valid + worth fixing**
- If tests exist for the area, add or extend coverage for the issue.
- Run the test and confirm it fails.
- Apply the fix and re-run the test to confirm it passes.
- **Invalid or not worth fixing**
- Add a brief code comment explaining why it is safe or intentional.

### 4) Re-run review if needed

- Re-run `council.ts review` only if you made substantive changes that affect earlier findings.

### 5) Final validation

- Run repo-required checks (for this repo: `yarn check`).
- Note any warnings but avoid unrelated changes unless required.

## Notes

- Avoid modifications while running; only edit after it finishes.
- If `council.ts review` fails, consider the errors, source code, and propose a fix for the review
script, but do not change it, just propose it to the human
6 changes: 6 additions & 0 deletions .changeset/mcp-logger-redaction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@transloadit/mcp-server": patch
"@transloadit/node": patch
---

Add sev-logger based logging with redaction for MCP server, and improve input handling with trusted assembly URLs and configurable URL download restrictions.
40 changes: 36 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,51 @@

# Transloadit JavaScript/TypeScript SDKs

Monorepo for Transloadit SDKs and shared packages.
Monorepo for Transloadit SDKs, shared packages, and the MCP server.

For SDK usage docs, see `packages/node/README.md`.
For full SDK usage docs, see `packages/node/README.md`.

## Packages

- `@transloadit/node` — Node.js SDK + CLI (experimental). See `packages/node/README.md`.
- `@transloadit/node` — Node.js SDK + CLI. See `packages/node/README.md`.
- `transloadit` — Stable unscoped package (built from `@transloadit/node`).
- `@transloadit/mcp-server` — MCP server (Streamable HTTP + stdio).
- `@transloadit/types` — Shared TypeScript types.
- `@transloadit/utils` — Shared utilities.
- `@transloadit/zod` — Zod schemas for Transloadit APIs.

## Quick start

### Node SDK

```ts
import { Transloadit } from '@transloadit/node'

const client = new Transloadit({
authKey: process.env.TRANSLOADIT_KEY as string,
authSecret: process.env.TRANSLOADIT_SECRET as string,
})

const result = await client.createAssembly({
params: {
steps: {
':original': { robot: '/upload/handle' },
},
},
files: { file: '/path/to/file.jpg' },
waitForCompletion: true,
})
```

### MCP server (local)

```bash
corepack yarn workspace @transloadit/mcp-server build
node packages/mcp-server/dist/cli.js http --host 127.0.0.1 --port 5723
```

See `docs/mcp-spec.md` for the MCP design and `docs/mcp-todo.md` for the remaining work.

## Development

- Install: `corepack yarn`
Expand All @@ -35,4 +68,3 @@ See `CONTRIBUTING.md` for full guidelines.

- Docs live under `docs/`.
- The `transloadit` package is prepared via `scripts/prepare-transloadit.ts`.

Loading