loading…
Search for a command to run...
loading…
MCP Gateway for exposing VAT agents through Model Context Protocol
MCP Gateway for exposing VAT agents through Model Context Protocol
CI codecov Quality Gate Status Node TypeScript License: MIT
A toolkit for testing and packaging portable AI agents that work across various LLMs, frameworks, deployment targets, and orchestrators.
vat skills build creates distributable skill packagesInstall skills:
vat skills install npm:@vibe-agent-toolkit/vat-example-cat-agents
vat skills install ./path/to/local/package
vat skills list --installed
See Distributing VAT Skills Guide for creating your own distributable packages.
VAT skills are available as a Claude Code plugin — install them directly from GitHub, no npm needed:
claude plugin marketplace add jdutton/vibe-agent-toolkit#claude-marketplace
claude plugin install vibe-agent-toolkit@vat-skills
Or from within a Claude Code session:
/plugin marketplace add jdutton/vibe-agent-toolkit#claude-marketplace
/plugin install vibe-agent-toolkit@vat-skills
For project-scope (shared with team via .claude/settings.json), add --scope project:
claude plugin marketplace add jdutton/vibe-agent-toolkit#claude-marketplace --scope project
This gives Claude Code 8 skills for building, packaging, and distributing agent skills. See the marketplace branch for the full skill list.
Pre-release channel: To track the latest pre-release builds, use #claude-marketplace-next instead.
Build your own marketplace: VAT can publish your skills as a Claude plugin marketplace too. See the Marketplace Distribution Guide for how marketplace publishing works — from project structure through build, validation, publishing, and testing.
Comprehensive validation for Claude plugins, marketplaces, and configurations:
# Audit user-level Claude plugins
vat audit --user
# Audit specific plugin
vat audit ./my-plugin
# Recursive scan for all resources
vat audit ./resources --recursive
Features:
See Audit Documentation for complete reference.
Install the CLI globally:
npm install -g vibe-agent-toolkit
Scan and validate markdown resources:
vat resources scan docs/
vat resources validate docs/
Audit and import Agent Skills:
vat agent audit my-skill/SKILL.md
vat agent import my-skill/SKILL.md
Diagnose project setup:
vat doctor
See CLI Reference for complete documentation (or run vat --help --verbose).
Prerequisites:
Installation:
# Clone the repository
git clone https://github.com/jdutton/vibe-agent-toolkit.git
cd vibe-agent-toolkit
# Install dependencies
bun install
# Build all packages
bun run build
# Run full validation (recommended)
bunx vv validate
# Or run test suites individually:
bun run test:unit # Unit tests only
bun run test:watch # Watch mode for development
bun run test:integration # Integration tests
bun run test:system # System/e2e tests
# Lint code
bun run lint
# Type check
bun run typecheck
# Validate all markdown links (dogfooding)
bun run validate-links
This project uses its own @vibe-agent-toolkit/resources package to validate all markdown links in the repository. This ensures our documentation stays accurate and all links remain valid.
Run link validation:
bun run validate-links
What it checks:
Runs automatically in CI/CD as part of the System Tests phase, ensuring broken links are caught before merge.
Optionally validate external URLs with caching:
vat resources validate docs/ --check-external-urls
See External URL Validation for details.
vibe-agent-toolkit/
├── packages/ # Published packages
│ └── example-utils/ # Example package (replace with your packages)
│ ├── src/ # Source code
│ ├── test/ # Tests
│ ├── package.json
│ └── tsconfig.json
├── tools/ # Development tools (TypeScript)
│ ├── common.ts # Shared utilities
│ ├── duplication-check.ts
│ ├── jscpd-check-new.ts
│ └── jscpd-update-baseline.ts
├── docs/ # Documentation
├── .github/ # CI/CD workflows
│ └── workflows/
│ └── validate.yml # Validation pipeline
├── eslint.config.js # ESLint configuration (strict!)
├── vitest.config.ts # Unit test configuration
├── vitest.integration.config.ts # Integration test config
├── vitest.system.config.ts # System test config
├── tsconfig.json # Root TypeScript config
├── tsconfig.base.json # Base config for packages
├── vibe-validate.config.yaml # Validation orchestration
├── package.json # Root package.json
├── CLAUDE.md # AI assistant guidelines
└── README.md # This file
mkdir -p packages/my-package/src packages/my-package/test
packages/my-package/package.json:{
"name": "@your-org/my-package",
"version": "0.1.0",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
}
},
"scripts": {
"build": "tsc",
"test": "vitest run",
"test:watch": "vitest",
"typecheck": "tsc --noEmit",
"clean": "rm -rf dist *.tsbuildinfo"
},
"devDependencies": {
"typescript": "^5.9.3",
"vitest": "^3.2.4"
}
}
packages/my-package/tsconfig.json:{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist", "**/*.test.ts"]
}
tsconfig.json references:{
"references": [
{ "path": "./packages/example-utils" },
{ "path": "./packages/my-package" } // Add this
]
}
# Create your source files
touch packages/my-package/src/index.ts
# Create tests
touch packages/my-package/test/index.test.ts
bun install
bun run build
The toolkit supports three levels of testing:
*.test.ts)bun test*.integration.test.ts)bun test:integration*.system.test.ts)bun test:systempackages/my-package/
├── src/
│ ├── utils.ts
│ └── utils.test.ts # Unit tests (co-located)
└── test/
├── api.test.ts # Unit tests
├── integration/
│ └── workflow.integration.test.ts
└── system/
└── e2e.system.test.ts
The toolkit enforces strict linting rules:
--max-warnings=0All code (src, tests, tools) is held to the same standards.
Minimum thresholds enforced:
Uses jscpd with a baseline approach:
bun run duplication-update-baselineStrict mode enabled with additional checks:
noUncheckedIndexedAccessnoImplicitOverrideexactOptionalPropertyTypesThe toolkit uses vibe-validate for git-aware validation:
# Run all validation checks
bun run validate
# Pre-commit check (fast)
bun run pre-commit
Validation runs:
GitHub Actions workflows run on every push/PR:
.github/workflows/validate.yml.github/workflows/coverage.ymlCODECOV_TOKEN to GitHub repository secretsHusky is configured to run validation before commits:
# Install hooks
bun install # Runs automatically via "prepare" script
# Manually run pre-commit checks
bun run pre-commit
When you're ready to publish to npm:
bun run buildbun run validatenpm publish (or create publish scripts)Replace @vibe-agent-toolkit with your org name:
# Update package names in:
# - packages/*/package.json
# - Import statements
Edit these files:
vitest.config.ts - Coverage thresholdseslint.config.js - Linting rulesvibe-validate.config.yaml - Validation stepsAdd scripts to packages/dev-tools/src/ directory:
common.tsThe project includes comprehensive validation checks:
# Run all validation checks
bun run validate
# Run pre-commit checks
bun run pre-commit
The example package (packages/example-utils/) demonstrates testing patterns and will be replaced with agent-specific packages.
MIT - see LICENSE file
bun run validate to ensure qualityBuilt with ❤️ using Bun, TypeScript, and modern tooling
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"gateway-mcp": {
"command": "npx",
"args": [
"-y",
"@vibe-agent-toolkit/gateway-mcp"
]
}
}
}