Back to MCP Servers

Uploadkit

Official MCP server for [UploadKit](https://uploadkit.dev). Gives AI assistants first-class knowledge of 40+ React upload components, Next.js route handler scaffolds, BYOS setup (S3/R2/GCS/B2), and full-text search across 88+ docs pages. Runs locally via `npx -y @uploadkitdev/mc…

developer-toolsreactai
By drumst0ck
2Updated todayTypeScriptMIT

Installation

npx -y @uploadkitdev/mcp

Configuration

{
  "mcpServers": {
    "uploadkit": {
      "command": "npx",
      "args": ["-y", "uploadkit"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes
<div align="center">

UploadKit

File uploads for developers. Beautifully.

Open-source TypeScript SDK + 40+ premium React components + managed storage on Cloudflare R2 — with BYOS (Bring Your Own Storage) mode so you can use your own S3, R2, GCS, or Backblaze B2 bucket. 5 GB free forever.

Website · Docs · Dashboard · Discord · Changelog

npm: @uploadkitdev/react npm: @uploadkitdev/mcp Glama MCP score Awesome MCP Servers

</div>

Quickstart — add to an existing project

Most people land here with a Next.js app already running. Three steps:

pnpm add @uploadkitdev/react @uploadkitdev/next

Create app/api/uploadkit/[...uploadkit]/route.ts:

import { createUploadKitHandler, type FileRouter } from '@uploadkitdev/next';

const router = {
  default: { maxFileSize: '4MB', allowedTypes: ['image/*'] },
} satisfies FileRouter;

export const { GET, POST } = createUploadKitHandler({
  router,
  apiKey: process.env.UPLOADKIT_API_KEY!,
});

Wrap the root layout and drop in a dropzone:

// app/layout.tsx
import { UploadKitProvider } from '@uploadkitdev/react';
// <UploadKitProvider endpoint="/api/uploadkit">{children}</UploadKitProvider>

// any page
import { UploadDropzone } from '@uploadkitdev/react';
// <UploadDropzone route="default" />

Set UPLOADKIT_API_KEY=uk_live_... in .env.local and you're done. Full walkthrough: docs.uploadkit.dev/docs/getting-started/quickstart.

Or use the CLI (recommended)

npx uploadkit init

Detects your framework, installs deps, creates the route handler, and wraps your layout — all in one command. See the CLI guide for details.

Starting a new project?

npx create-uploadkit-app my-app

Templates for Next.js, SvelteKit, Remix, and Vite — see the CLI guide.

Using an AI-assistant IDE?

Install the UploadKit MCP server and let Claude Code, Cursor, Windsurf, or Zed wire the whole thing up for you:

npx -y @uploadkitdev/mcp

Packages

PackageVersionDescription
@uploadkitdev/corenpmFramework-agnostic upload client (browser, Node, Edge)
@uploadkitdev/reactnpm40+ premium React upload components
@uploadkitdev/nextnpmNext.js App Router handler + Express/Hono adapters
@uploadkitdev/mcpnpmOfficial MCP server for AI coding assistants
create-uploadkit-appnpmScaffolder for new projects (Next, SvelteKit, Remix, Vite)

Component highlights

UploadKit ships 40+ components across 7 categories:

  • ClassicsUploadButton, UploadDropzone, UploadModal, FileList, FilePreview
  • Premium dropzones — Glass (Vercel/Linear), Aurora (Apple), Terminal (Raycast), Brutal (Neo-brutalist), Minimal, Neon
  • SpecialtyUploadAvatar, UploadInlineChat (ChatGPT-style), UploadStepWizard (Stripe Checkout-style), UploadEnvelope (WeTransfer-style)
  • Motion / ProgressUploadProgressRadial, UploadProgressLiquid, UploadProgressOrbit, UploadCloudRain, UploadBento, UploadParticles, UploadDataStream (Matrix/Warp-style)
  • GalleriesUploadGalleryGrid, UploadPolaroid, UploadTimeline, UploadKanban, UploadStickyBoard

All are MIT-licensed, dark mode out of the box, themeable via CSS custom properties, and work with or without motion as a peer dep.

BYOS — Bring Your Own Storage

Use the same SDK against your own bucket — zero frontend changes, credentials stay server-side.

import { createUploadKitHandler, type FileRouter } from '@uploadkitdev/next';
import { createR2Storage } from '@uploadkitdev/next/byos';

const router = {
  media: { maxFileSize: '8MB', maxFileCount: 4, allowedTypes: ['image/*'] },
} satisfies FileRouter;

export const { GET, POST } = createUploadKitHandler({
  router,
  storage: createR2Storage({
    accountId: process.env.CLOUDFLARE_R2_ACCOUNT_ID!,
    accessKeyId: process.env.CLOUDFLARE_R2_ACCESS_KEY_ID!,
    secretAccessKey: process.env.CLOUDFLARE_R2_SECRET_ACCESS_KEY!,
    bucket: process.env.CLOUDFLARE_R2_BUCKET!,
  }),
});

Supported providers: AWS S3 · Cloudflare R2 · Google Cloud Storage · Backblaze B2.

AI-native — MCP server

UploadKit ships an official Model Context Protocol server so Claude Code, Cursor, Windsurf, Zed, ChatGPT, and Claude.ai can generate UploadKit code with first-class knowledge of every component and scaffold.

Stdio (IDE clients):

npx -y @uploadkitdev/mcp

Remote HTTP (ChatGPT / Claude.ai web):

https://api.uploadkit.dev/api/v1/mcp

Full setup: docs.uploadkit.dev/docs/guides/mcp · Source: packages/mcp · Registry: io.github.drumst0ck/uploadkit

Monorepo layout

apps/
  web         Landing + pricing (uploadkit.dev)
  docs        Fumadocs site (docs.uploadkit.dev)
  dashboard   SaaS dashboard (app.uploadkit.dev)
  api         REST API + MCP remote endpoint (api.uploadkit.dev)
packages/
  core                  @uploadkitdev/core
  react                 @uploadkitdev/react
  next                  @uploadkitdev/next
  mcp                   @uploadkitdev/mcp (stdio MCP server)
  mcp-core              shared MCP tool surface (internal)
  create-uploadkit-app  scaffolder for new projects
  db                    MongoDB models
  emails                React Email templates
  shared                types, errors, utilities
  ui                    dashboard components
  config                shared tsconfig / eslint / tailwind base

Tech stack

Next.js 16 · React 19 · Tailwind CSS v4 · TypeScript 5 · MongoDB + Mongoose · Cloudflare R2 · Auth.js v5 · Stripe · Resend + React Email · Fumadocs · Turborepo · pnpm · Changesets.

Status

Version 1.0 shipped. Actively maintained. Community welcome on Discord.

License

MIT © Drumst0ck and contributors.

View source on GitHub