JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8592
  • Score
    100M100P100Q173963F
  • License Apache-2.0

FrontMCP SDK

Package Exports

  • @frontmcp/sdk
  • @frontmcp/sdk/esm
  • @frontmcp/sdk/package.json
  • @frontmcp/sdk/transport

Readme

@frontmcp/sdk

The core FrontMCP framework for building MCP servers and clients in TypeScript.

NPM

Install

npm install @frontmcp/sdk reflect-metadata

Most users should scaffold with npx frontmcp create my-app instead of installing manually. See Installation.

Features

  • @FrontMcp server — single decorator configures info, apps, HTTP, logging, session, auth (docs)
  • @App — group tools, resources, prompts into isolated domains (docs)
  • @Tool — typed actions with Zod input schemas, class or function style (docs)
  • @Resource — read-only data with static and template URIs (docs)
  • @Prompt — reusable message templates returning GetPromptResult (docs)
  • @Agent — orchestrated multi-step tool chains (docs)
  • Elicitation — request structured user input mid-flow (docs)
  • Skills — HTTP-discoverable tool manifests for agent marketplaces (docs)
  • 5 context classesToolContext, ResourceContext, PromptContext, AgentContext, HookContext
  • Direct clientcreate(), connect(), connectOpenAI(), connectClaude(), connectLangChain(), connectVercelAI() (docs)
  • Authentication — Remote OAuth, Local OAuth, JWKS, DCR, per-app auth surfaces (docs)
  • Sessions — stateful / stateless modes, JWT or UUID transport IDs
  • Hooks — tool, list-tools, HTTP, resource, prompt hook families (docs)
  • Ext-Apps — mount external MCP servers as sub-apps (docs)
  • Providers / DI — scoped injection with GLOBAL and CONTEXT scopes (docs)
  • ConfigPlugin — load frontmcp.yaml / frontmcp.json config files (docs)
  • Transport — Streamable HTTP + SSE (docs)

Quick Example

import 'reflect-metadata';
import { FrontMcp, App, Tool } from '@frontmcp/sdk';
import { z } from 'zod';

@Tool({ name: 'greet', inputSchema: { name: z.string() } })
class GreetTool {
  async execute({ name }: { name: string }) {
    return `Hello, ${name}!`;
  }
}

@App({ id: 'hello', name: 'Hello', tools: [GreetTool] })
class HelloApp {}

@FrontMcp({ info: { name: 'Demo', version: '0.1.0' }, apps: [HelloApp], http: { port: 3000 } })
export default class Server {}

Full walkthrough: Quickstart

Docs

Topic Link
Server configuration The FrontMCP Server
Apps & isolation Apps
Tools, Resources, Prompts Tools · Resources · Prompts
Agents Agents
Authentication Auth Overview · Remote OAuth · Local OAuth
Direct client Direct Client
Hooks & providers Hooks · Providers
Deployment Local Dev · Production
SDK reference Overview

License

Apache-2.0 — see LICENSE.