Introduction
Upjack lets you build AI-powered applications by describing your domain instead of writing code. The fastest way to start is with the app-builder skill — install it, tell your agent what you want, and you have a running app:
npm install -g @nimblebrain/mpakmpak skill install @nimblebraininc/upjack-app-builderclaude > Build me a CRM appThe agent generates a complete app: manifest, entity schemas, skills, context, seed data, and a server entry point. Run it and you’re done.
For those who want to build by hand, Upjack’s core is a JSON Schema for your data and Markdown for your domain expertise:
from upjack import UpjackApp
app = UpjackApp.from_manifest("manifest.json")
contact = app.create_entity("contact", {"name": "Alice", "email": "alice@example.com"})results = app.search_entities("contact", query="alice")import { UpjackApp } from "upjack";
const app = UpjackApp.fromManifest("manifest.json");
const contact = app.createEntity("contact", { name: "Alice", email: "alice@example.com" });const results = app.searchEntities("contact", { query: "alice" });No API code. No database. No deployment config.
What You Get
Section titled “What You Get”For each entity you define, Upjack provides:
- 6 MCP tools per entity:
create_contact,get_contact,update_contact,list_contacts,search_contacts,delete_contact - Schema validation on every write. Invalid data never hits storage.
- Type-prefixed IDs like
ct_01HZ3QKB...so you know it’s a contact at a glance - Full-text search across all string fields
- JSON file storage in a git-friendly directory structure
- Skills as resources: your Markdown expertise files are served to the agent via
upjack://skills/*
Define a contact entity schema and a lead-qualification skill in Markdown, and your AI agent immediately knows how to create contacts, qualify leads, and follow up, all from two files.
Key Concepts
Section titled “Key Concepts”Entity
A typed data record with a JSON Schema. Every entity gets a type-prefixed ULID (for example, ct_01HZ3QKB... for contacts, dl_01HZ4RMN... for deals). Entities are stored as individual JSON files and validated at write time.
Skill A Markdown document encoding domain expertise: scoring rubrics, decision criteria, procedures. The AI agent reads skills and applies them through reasoning.
Manifest A JSON declaration that wires entities to skills, defines hooks (react to data changes), schedules (cron triggers), views (named queries), and bundle dependencies (external tools declared by capability alias).
Bundle Dependency
An external tool provider declared by alias (for example, email) with a compatibility contract (tools_used array). Swap the underlying package without touching skills or schemas.
Three Tiers
Section titled “Three Tiers”Upjack meets you where you are. Start at the first tier and move up only when you need to.
| Tier | What You Do | What Upjack Provides |
|---|---|---|
| Schemas + Skills | JSON Schema + Markdown | Entity management, storage, validation |
| MCP Server | create_server(manifest) | Full MCP server with CRUD tools, resources |
| Custom Server | Custom MCP server + your logic | Entity management + your custom tools |
At the first tier, you write only declarative files and get a working application. At the second, a single function call wraps everything in an MCP server:
from upjack.server import create_server
mcp = create_server("manifest.json")mcp.run()# Tools: create_contact, get_contact, update_contact, list_contacts, search_contacts, delete_contactimport { startServer } from "upjack/server";
startServer("manifest.json");// Tools: create_contact, get_contact, update_contact, list_contacts, search_contacts, delete_contactAt the third tier, you build a custom MCP server and use Upjack’s entity management alongside your own tools.
Prerequisites
Section titled “Prerequisites”You do not need deep knowledge of these to get started, but they are helpful context:
| Concept | What It Is | Learn More |
|---|---|---|
| JSON Schema | A standard for describing the shape of JSON data. Upjack uses it to define what each entity looks like. | Getting Started |
| MCP | Model Context Protocol — a standard that lets AI agents call tools and read resources. Upjack can expose your app as an MCP server so agents can interact with it. | Introduction |
| MCPB | MCP Bundle — a packaging format for distributing MCP servers. Upjack apps use the MCPB manifest format, with upjack-specific config in a _meta extension field. | Spec |
| ULID | Universally Unique Lexicographically Sortable Identifier — like a UUID but sortable by creation time. Upjack uses prefixed ULIDs as entity IDs. | Spec |
Next Steps
Section titled “Next Steps”- Quick Start: Two paths — agent-built or manual — both under 5 minutes
- Build a Todo App: Step-by-step tutorial building a complete application
- Architecture: How Upjack works under the hood
- Python Library: Python API reference
- TypeScript Library: TypeScript API reference