MCP context & instinct engine — learned rules from sessions with confidence scoring
npx claudepluginhub doobidoo/mcp-context-providerMCP context & instinct engine — learned rules from sessions with confidence scoring. Provides tool-aware context injection and 6 MCP tools.
Share bugs, ideas, or general feedback.
https://github.com/user-attachments/assets/d9c6c325-00f1-44d9-a805-b1d6588c0acf
Persistent context and learned instincts for Claude Desktop and Claude Code — surviving across sessions.
A TypeScript MCP server that gives Claude persistent Contexts (static tool rules) and Instincts (learned, confidence-scored rules distilled from sessions). No more re-establishing context in every new chat.
Two core concepts:
| Concept | Description | Size | Lifetime |
|---|---|---|---|
| Context | Static tool rules, syntax preferences, auto-corrections | 200–1000 tokens | Permanent, manually authored |
| Instinct | Learned rule extracted from sessions, confidence-scored | 20–80 tokens | Human-approved, evolves over time |
Four subsystems:
src/server/index.ts) — stdio + HTTP transport, 6 MCP toolsmcp-cp) — approval registry for instinct lifecycle managementgit clone https://github.com/doobidoo/MCP-Context-Provider.git
cd MCP-Context-Provider
npm install
npm run build
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"context-provider": {
"command": "node",
"args": ["/path/to/mcp-context-provider/dist/server/index.js"],
"env": {
"CONTEXTS_PATH": "/path/to/mcp-context-provider/contexts",
"INSTINCTS_PATH": "/path/to/mcp-context-provider/instincts"
}
}
}
}
Add to ~/.mcp.json:
{
"mcpServers": {
"context-provider": {
"command": "node",
"args": ["/path/to/mcp-context-provider/dist/server/index.js"],
"env": {
"CONTEXTS_PATH": "/path/to/mcp-context-provider/contexts",
"INSTINCTS_PATH": "/path/to/mcp-context-provider/instincts"
}
}
}
}
Important: Use absolute paths for both
argsandenvvalues. Claude Code does not support thecwdfield in MCP server configs — relative paths will resolve from the wrong directory and the server will fail to connect.
Install directly from the marketplace:
/plugin marketplace add doobidoo/MCP-Context-Provider
/plugin install context-provider
This auto-configures the MCP server with correct paths — no manual .mcp.json editing needed.
/instill Skill (Claude Code)Install the skill globally (stays current with git pull):
mkdir -p ~/.claude/skills/instill
ln -s /path/to/mcp-context-provider/.claude/skills/instill.md ~/.claude/skills/instill/SKILL.md
Then use /instill at the end of productive sessions to distill learned patterns into instinct candidates.
The instill-trigger hook automatically detects mistakes during a session and nudges Claude to suggest /instill when a threshold is reached. It monitors:
Install the hook:
cp hooks/instill-trigger.js ~/.claude/hooks/core/instill-trigger.js
Register in ~/.claude/settings.json under both UserPromptSubmit and PostToolUse:
{
"type": "command",
"command": "node --no-warnings \"~/.claude/hooks/core/instill-trigger.js\"",
"timeout": 3
}
Scoring: Corrections weighted 1.5x, tool failures 0.5x. Combined threshold: 3.0. Max 1 nudge per session. All tunable via CONFIG object in the hook file.
| Tool | Description |
|---|---|
get_tool_context | Get complete context for a tool category |
get_syntax_rules | Get syntax-specific rules for a tool |
list_available_contexts | List all loaded contexts |
apply_auto_corrections | Apply correction patterns to text |
build_injection | Combined context + instinct injection payload |
list_instincts | List all instincts with confidence scores |
| Variable | Default | Description |
|---|---|---|
CONTEXTS_PATH | ./contexts | Path to *_context.json files |
INSTINCTS_PATH | ./instincts | Path to *.instincts.yaml files |
MEMORY_BRIDGE_URL | — | Memory service base URL (enables bridge) |
MEMORY_BRIDGE_API_KEY | — | API key for memory service |
MCP_SERVER_PORT | 3100 | HTTP server port (only with --http) |
Contexts are JSON files in contexts/*_context.json. Each file matches one or more tools via glob patterns and injects static rules.