doobidoo/MCP-Context-Provider
요약
이 문서는 Claude Desktop 및 Claude Code 환경에서 세션 간 지속적인 컨텍스트와 학습된 규칙(Instincts)을 제공하는 MCP Context Provider 서버를 소개합니다. 사용자는 정적 'Context'와 동적으로 추출되는 'Instinct'를 통해 AI 모델에 영구적인 지식과 행동 패턴을 주입할 수 있습니다.
핵심 포인트
- 세션 간 컨텍스트 유지를 위한 TypeScript 기반 MCP 서버입니다.
- Context는 정적 규칙, Instinct는 세션에서 학습된 신뢰도 높은 규칙입니다.
- 사용자 수정이나 도구 실패 시 자동으로 'Instill' 후보를 추출합니다.
- MCP 서버 설정 시 절대 경로 사용이 필수적이며, 마켓플레이스 설치가 권장됩니다.
상태: 베타(beta) — 기능 완성, API 안정화 중. 최신 릴리스 정보는 CHANGELOG.md를 참조하세요.
video.mp4
Claude Desktop 및 Claude Code용 영구 컨텍스트와 학습된 본능 — 세션 간 생존.
세션마다 컨텍스트를 재설정할 필요 없이, Claude에게 영구적인 컨텍스트(Contexts) (정적 도구 규칙)와 본능(Instincts) (세션에서 추출되고 신뢰도 점수가 매겨진 학습된 규칙)를 제공하는 TypeScript MCP 서버입니다.
두 가지 핵심 개념:
| 개념 | 설명 | 크기 | 수명 주기 |
|---|---|---|---|
| Context | 정적 도구 규칙, 구문 선호도, 자동 수정 기능 | 200–1000 토큰 | 영구적, 수동 작성 |
| Instinct | 세션에서 추출된 학습 규칙, 신뢰도 점수 포함 | 20–80 토큰 | 인간 승인, 시간이 지남에 따라 진화 |
네 가지 서브시스템:
Engine — 컨텍스트와 본능을 로드하고, 매칭하며, 주입 페이로드로 병합합니다. MCP 서버(src/server/index.ts) — stdio + HTTP 전송, 10개의 MCP 도구 CLI(mcp-cp) — 본능 수명 주기 관리를 위한 승인 레지스트리 Memory Bridge — mcp-memory-service로의 선택적 본능 동기화
git clone https://codeberg.org/doobidoo/MCP-Context-Provider.git
cd MCP-Context-Provider
npm install
...
~/Library/Application Support/Claude/claude_desktop_config.json에 추가 (macOS):
{
"mcpServers": {
"context-provider": {
...
~/.mcp.json에 추가:
{
"mcpServers": {
"context-provider": {
...
중요: args와 env 값 모두 절대 경로를 사용하세요. Claude Code는 MCP 서버 설정에서 cwd 필드를 지원하지 않습니다 — 상대 경로는 잘못된 디렉토리에서 해석되어 서버 연결에 실패할 수 있습니다.
마켓플레이스에서 직접 설치하기:
/plugin marketplace add codeberg/doobidoo/MCP-Context-Provider
/plugin install context-provider
이 방법은 올바른 경로로 MCP 서버를 자동 구성하므로 수동으로 .mcp.json을 편집할 필요가 없습니다.
스킬을 전역적으로 설치하세요 (git pull로 최신 상태 유지):
mkdir -p ~/.claude/skills/instill
ln -s /path/to/mcp-context-provider/.claude/skills/instill.md ~/.claude/skills/instill/SKILL.md
그런 다음 생산적인 세션의 끝에서 /instill을 사용하여 학습된 패턴을 본능(instinct) 후보로 추출합니다.
instill-trigger 훅은 세션 중 발생하는 실수를 자동으로 감지하고, 임계값에 도달하면 Claude에게 /instill을 제안하도록 유도합니다. 이 훅은 다음 사항들을 모니터링합니다:
사용자 수정(UserPromptSubmit) — "아니, 그게 아니야", "틀렸어", "여전히 고장났어" 등.
도구 실패(PostToolUse) — 0이 아닌 종료 코드(non-zero exit codes), 트레이스백(tracebacks), 권한 오류(permission errors)
훅 설치:
cp hooks/instill-trigger.js ~/.claude/hooks/core/instill-trigger.js
~/.claude/settings.json에 등록합니다.
UserPromptSubmit과 PostToolUse 모두 아래와 같이 등록해야 합니다:
{
"type": "command",
"command": "node --no-warnings \"~/.claude/hooks/core/instill-trigger.js\"",
...
}
점수 계산(Scoring): 수정은 1.5배, 도구 실패는 0.5배로 가중치가 부여됩니다. 결합 임계값은 3.0입니다. 세션당 최대 1회만 제안이 가능하며, 모든 설정은 훅 파일의 CONFIG 객체를 통해 조정할 수 있습니다.
| 도구(Tool) | 설명(Description) | |
|---|---|
get_tool_context | 도구 카테고리에 대한 전체 컨텍스트를 가져옵니다. |
get_syntax_rules | 도구에 대한 구문별 규칙을 가져옵니다. |
list_available_contexts | 로드된 모든 컨텍스트 목록을 보여줍니다. |
apply_auto_corrections | 텍스트에 수정 패턴을 적용합니다. |
build_injection | 결합된 컨텍스트 + 본능 주입 페이로드입니다. |
list_instincts | 신뢰도 점수와 해결된 저장소 경로가 포함된 모든 본능 목록을 보여줍니다. |
| 변수(Variable) | 기본값(Default) | 설명(Description) |
|---|---|
CONTEXTS_PATH | 패키지 내 contexts/ | *_context.json 파일의 경로입니다. |
INSTINCTS_PATH | ~/.local/share/mcp-context-provider/instincts | learned.instincts.yaml이 포함된 디렉토리입니다. (저장소 위치 참조) |
MEMORY_BRIDGE_URL | — | 메모리 서비스의 기본 URL입니다. (브릿지 활성화)
MEMORY_BRIDGE_API_KEY | — | 메모리 서비스용 API 키입니다. |
MCP_SERVER_PORT | 3100 | HTTP 서버 포트입니다. (--http 사용 시에만 해당) |
인스트िंक्ट스 저장소는 MCP 호스트가 서버를 실행한 디렉터리에 의존하지 않습니다. 다음 순서로 경로가 결정됩니다:
INSTINCTS_PATH
— 명시적 오버라이드이며, 항상 우선합니다.
./instincts
— 작업 디렉터리가 mcp-context-provider의 체크아웃인 경우에만 해당합니다 (개발 케이스).
$XDG_DATA_HOME/mcp-context-provider/instincts
— XDG_DATA_HOME이 설정된 경우입니다.
~/.local/share/mcp-context-provider/instincts
— 기본값입니다.
컨텍스트(Contexts)도 동일한 방식으로 결정되지만, 폴백(fallback) 경로는 패키지와 함께 제공되는 contexts/ 디렉터리입니다. 컨텍스트는 코드와 함께 작성되고 버전 관리되며, 인스트िंक्ट스는 사용자가 학습한 데이터입니다.
활성화된 저장소를 확인하려면 다음을 사용하십시오:
mcp-cp path # 결정된 디렉터리를 출력합니다
node dist/server/index.js # 시작 시 두 경로를 stderr에 기록합니다
결정된 경로는 list_instincts 응답(store.path, store.resolved_from)과 HTTP 모드의 /health 페이로드의 일부가 됩니다.
만약 결정된 저장소가 이 리포지토리의 체크아웃이 아닌 git 작업 트리에 위치한다면, 서버는 시작 시 경고합니다. 이는 서버가 실수로 작업 디렉터리를 감지했으며 학습된 인스트िंक्ट스가 속하지 않은 곳에 커밋되려 한다는 신호입니다.
다른 곳에서 저장소를 병합하기:
mcp-cp import /path/to/learned.instincts.yaml --dry-run # 미리보기
mcp-cp import /path/to/learned.instincts.yaml # 병합
병합은 항상 표준(canonical) learned.instincts.yaml을 대상으로 합니다.
기존 ID는 절대 덮어쓰지 않으며, 병합은 추가만 수행합니다. 레거시 파일 형태(최상위 배열 또는 instincts:를 리스트로 사용)는 읽을 때 정규화됩니다.
컨텍스트는 contexts/*_context.json에 있는 JSON 파일입니다. 각 파일은 글롭 패턴(glob patterns)을 통해 하나 이상의 도구와 일치하며 정적 규칙을 주입합니다.
{
, 내부의 해결된 스토어(resolved store)(Store Location 참조). 이들은 `/instill`을 통해 세션에서 추출되며 인간의 승인이 필요합니다.
해당 디렉터리에 있는 다른 모든 `*.instincts.yaml` 파일은 **읽히지 않습니다**. 이는 시작 시 이름으로, 그리고 `mcp-cp list`를 통해 보고되며, 이를 병합하는 `mcp-cp import` 명령어와 함께 사용됩니다. 따라서 두 번째 파일이 눈에 띄지 않게 스토어에 누적되는 일은 결코 없으며, 의도하지 않은 파일에서 어떤 인스팅트(instinct)도 로드되지 않습니다.
```json
{
"version": "1.0"
"instincts":
my-rule:
...
}
CLI를 사용하여 인스팅트를 관리하세요:
mcp-cp list
mcp-cp show <id>
mcp-cp approve <id>
...
npm run build # TypeScript 컴파일
npm run dev # 감시 모드
npm run lint # 타입 검사만
...
아닙니다. /instill은 Claude Code 스킬(.claude/skills/instill.md)이며 Claude Code CLI에서만 작동합니다. Claude Desktop에는 스킬 시스템이 없습니다.
하지만, Claude Desktop에서도 동일한 결과를 얻을 수 있습니다:
MCP 도구는 둘 다에서 작동합니다. list_instincts와 build_injection 도구는 MCP 서버를 통해 Claude Desktop에서도 사용할 수 있습니다. 인스팅트 워크플로우의 경우, Claude Desktop 프로젝트를 생성하고 인스팅트 지침을 사용자 지정 지침(Custom Instructions)으로 붙여넣으세요. 그러면 Claude Desktop은 desktop-commander 또는 유사한 MCP 서버를 사용하여 YAML 파일을 작성할 수 있습니다.
/instill이 MCP 도구로 노출되지 않은 이유는: 이것이 대화 분석, 후보 제시, 사용자 결정 대기, YAML 작성의 과정을 거치는 상호작용적이고 다단계적인 워크플로우이기 때문입니다. MCP 도구는 단일 응답을 반환하며 다중 턴 상호 작용을 구동할 수 없습니다.
잠재적으로 예. 작업 세션에서 추출된 인스팅트는 내부 호스트 이름, 고객 이름, 인프라 세부 정보 또는 운영 절차를 포함할 수 있습니다.
이것이 기본 스토어가 어떤 리포지토리 외부의 사용자 레벨 디렉터리(~/.local/share/mcp-context-provider/instincts)인 이유이며, 서버가 해결된 스토어가 관련 없는 git 작업 트리 내부에 있을 때 경고하는 이유입니다. 만약 INSTINCTS_PATH를 체크아웃 지점에 지정한다면, instincts/learned.instincts.yaml을 추가하세요.
해당 저장소의 .gitignore에 추가하고,
푸시하기 전에 내용을 검토하세요.
| Contexts | Instincts |
|---|---|
| 형식 (Format) | JSON (*_context.json) |
| 출처 (Source) | 수동 작성 (Manually authored) |
| 크기 (Size) | 200-1000 토큰 |
| 매칭 (Matching) | 도구 패턴 글로브 (Tool-pattern globs) |
| 수명 주기 (Lifecycle) | 정적, 버전 관리됨 (Static, versioned) |
| 승인 (Approval) | 필요 없음 (None needed) |
CHANGELOG.md를 참조하세요.
Apache-2.0 — LICENSE 참고.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기