Описание
Tools for building tools
README
Mnemotek
Describe an agentic command once. Derive its CLI, MCP tool, skill manifest, and slash command from that single contract.
CI Docs Release npm GitHub Packages node TypeScript license
Live demo & documentation — one inspect contract rendered as CLI, MCP, SKILL, and COMMAND output
What it does
Mnemotek takes one literal JSON Schema command contract and derives every surface an agentic tool needs from it, so the CLI flags, the MCP tool schema, the agent skill manifest, and the slash command definition can never drift out of sync with each other.
flowchart LR
A["Literal JSON Schema\ncommand contract"] --> B(("Mnemotek\nregistry"))
B --> C["CLI\nCommander + Enquirer"]
B --> D["MCP tool"]
B --> E["Agent SKILL.md\nmanifest"]
B --> F["Slash command"]
style A fill:#3178c6,color:#fff,stroke:none
style B fill:#2ea44f,color:#fff,stroke:none
style C fill:#1f2937,color:#fff,stroke:none
style D fill:#1f2937,color:#fff,stroke:none
style E fill:#1f2937,color:#fff,stroke:none
style F fill:#1f2937,color:#fff,stroke:none
- One source of truth. The schema is authored as a literal object (
as const satisfies JSONSchema) — no builder API, no separate type definitions to keep in sync. - Typed for free. json-schema-to-ts derives TypeScript types directly from the schema at compile time.
- Validated at the boundary. AJV validates every command payload at runtime through
@studnicky/json'sSchemaValidator. - Configuration cascade. Values resolve through schema defaults → package config → JSON config → environment → CLI, in that order.
Usage
import { Mnemotek } from '@studnicky/mnemotek';
import { mnemotekContract } from '@studnicky/mnemotek/entities';
const app = new Mnemotek({
name: 'project-tool',
description: 'Project automation for humans and agents.'
});
app.command({
name: 'inspect',
description: 'Inspect the current project.',
schema: {
type: 'object',
additionalProperties: true
}
});
const isCommandName = mnemotekContract.CommandNameEntity.validate('inspect');
console.log(app.manifest());
Install
npm install @studnicky/mnemotek
The package also publishes to GitHub Packages:
echo '@studnicky:registry=https://npm.pkg.github.com' >> .npmrc
npm install @studnicky/mnemotek
Entity schemas, types, and validators are exported separately:
import { mnemotekContract } from '@studnicky/mnemotek/entities';
Packages
This repo is a pnpm workspace. The root @studnicky/mnemotek is the library; everything under packages/* is a small standalone CLI/MCP/skill tool built on it — each one just defines its commands as a Mnemotek manifest and gets a CLI, MCP adapter, and skill manifest for free. No package here depends on a graph database, an agent-orchestration proxy, or a live external API — each shells out only to tools already on a normal dev machine (git, gh, the target project's own tsc/eslint).
| Package | What it does |
|---|---|
| @studnicky/memoria | Agent-native dotfile manager: templated apply, drift status, seed-once files, dry-run verify, remote bootstrap, and a bundled snippet catalog |
| @studnicky/git-flow | Feature/release/hotfix/cleanup branch orchestration, Conventional Commits validation, branch-derived commit type suggestion, WIP checkpoint commits |
| @studnicky/git-hooks | Installs a core.hooksPath dispatcher plus bundled protected-branch, large-file, and secret-scan pre-commit checks |
| @studnicky/git-stack | Thin passthrough to the gh-stack stacked-PR GitHub CLI extension |
| @studnicky/github-release | Create a GitHub release via gh release create, with auto-generated or explicit notes |
| @studnicky/labels-sync | Pull/push GitHub repository labels against a tracked JSON file, add-only and dry-run by default |
| @studnicky/redactor | Strip ANSI/spinner noise from command output, track byte/token savings |
| @studnicky/config-standards | Check/fix .gitignore, package.json, .editorconfig, .vscode config, Prettier config, version pins, and more against a small built-in standards set |
| @studnicky/deps-audit | Static import-graph analysis: circular imports, orphan modules, unused dependencies |
| @studnicky/inspect | Run a project's own tsc/eslint and report structured pass/fail results |
Development
pnpm install
pnpm run ci # root package first — its test script builds dist/, which packages/* depend on
pnpm -r run ci # then every package under packages/* (pnpm -r excludes the workspace root by design)
The Pages social preview is generated from the canonical transparent logo and the package version:
pnpm run generate:og
Release, publish, and documentation workflows run this generator automatically so the preview stays version-stamped. The local generator requires rsvg-convert from librsvg.
License
MIT — see LICENSE.
Changelog
See CHANGELOG.md and the GitHub releases.
Установка Mnemotek
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Studnicky/mnemotekFAQ
Mnemotek MCP бесплатный?
Да, Mnemotek MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Mnemotek?
Нет, Mnemotek работает без API-ключей и переменных окружения.
Mnemotek — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Mnemotek в Claude Desktop, Claude Code или Cursor?
Открой Mnemotek на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Mnemotek with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
