Install
$ agentstack add mcp-act-sdk-act-sdk-js β scanned Β· β verified β works with Claude Code, Cursor, and more.
Security review
β PassedNo issues found. Passed automated security review. Β· v0.1.0 How review works β
- β Prompt-injection patterns
- β Secret / credential exfiltration
- β Dangerous shell & filesystem operations
- β Untrusted network calls
- β Known-malicious package signatures
What it can access
- β Network access No
- β Filesystem access No
- β Shell / process execution No
- β Environment & secrets No
- β Dynamic code execution No
From automated source analysis of v0.1.0. βUsedβ means the capability is present in the source β more access means more to trust, not that itβs unsafe.
About
Act SDK
The fastest way to add MCP to TypeScript apps.
Act SDK is the simplest way to bring MCP into your application. It gives you everything you need to go from existing logic to a working MCP server in minutes. Expose existing functions as tools, integrate with frameworks like Next.js, Express, Hono, etc., and ship without building servers from scratch.
> Built on top of the official Model Context Protocol TypeScript SDK.
// your existing function
async function getDoughnuts({ userId, limit }: { userId: string; limit?: number }) {
return db.doughnuts.findMany({ where: { userId }, take: limit ?? 10 });
}
// register it β now MCP-ready
export const getDoughnuts = act.action({
id: 'getDoughnuts',
description: 'Get doughnuts for a user',
input: z.object({
userId: z.string(),
limit: z.number().optional(),
}),
handler: async ({ userId, limit }) => {
return db.doughnuts.findMany({ where: { userId }, take: limit ?? 10 });
},
});
// your app
await getDoughnuts({ userId: '123', limit: 5 });
// an MCP agent
// β calls getDoughnuts with { userId: '123', limit: 5 }
No new server. No separate process. No MCP knowledge required.
Install
npx @act-sdk/cli init
Or manually:
npm install @act-sdk/core @act-sdk/mcp @act-sdk/adapters zod
Next.js
1. Wrap your existing logic (lib/actions/doughnuts.ts):
import { z } from 'zod';
import { act } from '@/act-sdk.config';
export const getDoughnuts = act.action({
id: 'getDoughnuts',
description: 'Get doughnuts for the authenticated user',
input: z.object({ limit: z.number().optional() }),
handler: async ({ limit }, context) => {
return db.doughnuts.findMany({
where: { userId: context?.authInfo.userId },
take: limit ?? 10,
});
},
});
export const orderDoughnut = act.action({
id: 'orderDoughnut',
description: 'Order a doughnut for the authenticated user',
input: z.object({ flavour: z.string() }),
handler: async ({ flavour }, context) => {
return db.orders.create({
data: { flavour, userId: context?.authInfo.userId },
});
},
});
2. Config File (act-sdk.config.ts):
import { createAct, defineConfig } from '@act-sdk/core';
export const act = createAct();
export default defineConfig({
name: 'my-app',
description: 'My app MCP server',
version: '1.0.0',
act,
});
3. Add the route (app/api/mcp/route.ts):
import { createNextHandler } from '@act-sdk/adapters/nextjs';
import config from '@/act-sdk.config';
export const { GET, POST, DELETE } = createNextHandler(config, {
auth: async (req) => {
const token = req.headers.get('authorization')?.split(' ')[1];
if (!token) return null;
return verifyJWT(token);
},
});
STDIO
import { createStdioServer } from '@act-sdk/adapters/stdio';
import config from './act-sdk.config.js';
createStdioServer(config);
Packages
| Package | Purpose | | ------------------- | ------------------------------------------------ | | @act-sdk/core | Action registry, createAct(), defineConfig() | | @act-sdk/mcp | Translates actions into MCP tools | | @act-sdk/adapters | Next.js and STDIO adapters |
Coming Soon
Express, Hono, and Fastify adapters are on the roadmap. If you need one sooner, open an issue and let us know β we prioritize based on demand.
MIT
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source β we do not rehost the code.
- Author: act-sdk
- Source: act-sdk/act-sdk-js
- License: MIT
- Homepage: https://act-sdk.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet β be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.