MCI Toolsets
Toolsets are collections of tools organized into reusable, shareable files. They provide a way to structure tools by domain, share them across projects, and apply filtering to control which tools are loaded in mainmci.json file.
What are Toolsets?
A toolset is a separate MCI schema file that contains a collection of related tools. Unlike main entry files, toolsets:- Are stored in a library directory (default:
./mci) - Contain only tool definitions (no top-level configuration)
- Can be shared across multiple projects
- Support schema-level filtering when loaded
Toolsets vs Main Schema Files
Main Entry File (mci.json)
schemaVersion(required)metadata(optional)tools(optional)toolsets(optional)mcp_servers(optional)libraryDir(optional)directoryAllowList(optional)enableAnyPaths(optional)
Toolset File (./mci/weather.mci.json)
schemaVersion(required)metadata(optional - for documentation only)tools(required)
toolsetsmcp_serverslibraryDirdirectoryAllowListenableAnyPaths
| Feature | Main Entry File | Toolset File |
|---|---|---|
| Location | Project root | ./mci directory |
| Purpose | Configure application | Define tool collection |
| Can Define tools | ✓ Yes | ✗ Yes |
| Can reference toolsets | ✓ Yes | ✗ No |
| Can register MCP servers | ✓ Yes | ✗ No |
| Can set security configs | ✓ Yes | ✗ No |
| ”tools” required | ✗ No | ✓ Yes |
Creating Toolsets
Basic Toolset
Create a file in your toolsets directory: ./mci/github.mci.json:Domain-Organized Toolsets
Organize toolsets by domain or purpose: ./mci/database.mci.json:Loading Toolsets
Toolsets are loaded in the main schema file using thetoolsets field.
Basic Loading
With Custom Library Directory
Toolset Resolving
MCI resolves toolset names using a flexible system that supports both files and directories.Resolution Order
When you reference a toolset by name (e.g.,"weather"), MCI looks for it in this order:
- Directory:
{libraryDir}/weather/- If found, loads all.mci.jsonfiles in the directory - Direct File:
{libraryDir}/weather - With Extension:
{libraryDir}/weather.mci.json - YAML Files: Also checks
.mci.yamland.mci.yml, when extension not specified
File-Based Toolset
./mci/weather.mci.json
Directory-Based Toolset
.mci.json files in ./mci/github/
And in some main files, reference only issues:
Nested Directories
Multiple Files in Directory
When loading from a directory, all.mci.json files are loaded:
./mci/monitoring/status.mci.json:
check_health and get_metrics tools are loaded.
Important Notes:
- Only tools are merged from directory toolsets
- Metadata is NOT merged (used for documentation only)
- All files must use the same
schemaVersion - Schema version mismatch will raise an error
Schema-Level Filtering
Apply filters when loading toolsets to control which tools are registered.Filter Types
| Filter Type | Description | Example |
|---|---|---|
only | Include only specified tool names | "get_weather, get_forecast" |
except | Exclude specified tool names | "delete_user, drop_table" |
tags | Include only tools with matching tags | "read, search" |
withoutTags | Exclude tools with matching tags | "write, delete" |
Examples
Include Only Specific Tools:get_weather and get_forecast tools are loaded from the weather toolset.
Exclude Dangerous Tools:
"read" or "search" are loaded.
Filter by Tags (Exclude):
"write", "delete", or "admin" are loaded.
Combining Multiple Toolsets with Different Filters
Sharing Toolsets
Toolsets are designed to be shared across projects and teams.Sharing Within Organization
Project Structure:Sharing via Git Submodules
Sharing via Package Manager
npm Example:Best Practices
1. Organize by Domain
2. Use Tags for Categorization
3. Document Toolsets
4. Version Toolsets
Use semantic versioning in metadata:5. Keep Toolsets Focused
Each toolset should focus on a single domain: ✓ Good:github.mci.json- GitHub API toolsslack.mci.json- Slack API toolsmonitoring.mci.json- Monitoring tools
misc.mci.json- Mixed unrelated toolseverything.mci.json- Too broad
Summary
- Toolsets organize tools into reusable collections
- Main Schema Files configure applications and reference toolsets
- Toolset Files contain only tool definitions
- Resolving supports both files and directories
- Filtering controls which tools are loaded from toolsets
- Sharing enables reuse across projects and teams
