Skip to main content
Glama

컨텍스트 포털 MCP(ConPort)

(기억의 은행이에요!)

IDE 및 기타 인터페이스 내의 AI 어시스턴트와 개발자 도구에서 사용하도록 설계된, 구조화된 프로젝트 컨텍스트를 관리하기 위한 데이터베이스 지원 모델 컨텍스트 프로토콜(MCP) 서버입니다.

Related MCP server: BrowserStack MCP server

Context Portal MCP 서버(ConPort)란 무엇입니까?

컨텍스트 포털(ConPort)은 프로젝트의 메모리 뱅크 입니다. AI 어시스턴트가 의사 결정, 작업, 아키텍처 패턴과 같은 중요한 정보를 체계적으로 저장하여 특정 소프트웨어 프로젝트를 더 잘 이해할 수 있도록 돕는 도구입니다. AI가 쉽게 접근하고 활용하여 더욱 정확하고 유용한 답변을 제공할 수 있는 프로젝트별 지식 기반을 구축하는 것이라고 생각하면 됩니다.

기능:

  • 프로젝트 결정, 진행 상황, 시스템 설계를 추적합니다.

  • 사용자 정의 프로젝트 데이터(용어집이나 사양 등)를 저장합니다.

  • AI가 관련 프로젝트 정보를 빠르게 찾을 수 있도록 도와줍니다(스마트 검색과 유사).

  • AI가 프로젝트 컨텍스트를 활용하여 더 나은 대응을 할 수 있도록 합니다(RAG).

  • 간단한 텍스트 파일 기반 메모리 뱅크에 비해 컨텍스트를 관리, 검색, 업데이트하는 데 더 효율적입니다.

ConPort는 AI 어시스턴트가 다양한 유형의 프로젝트 컨텍스트를 저장, 검색 및 관리할 수 있는 강력하고 체계적인 방법을 제공합니다. 프로젝트별 지식 그래프를 효과적으로 구축하여 의사 결정, 진행 상황, 아키텍처와 같은 엔티티와 그 관계를 포착합니다. 의미론적 검색을 위한 벡터 임베딩 으로 강화된 이 체계적인 지식 기반은 검색 증강 생성(RAG) 의 강력한 백엔드 역할을 하여 AI 어시스턴트가 정확하고 최신 정보에 접근하여 더욱 맥락을 잘 파악하고 정확한 응답을 제공할 수 있도록 합니다.

ConPort는 더욱 안정적이고 쿼리 가능한 데이터베이스 백엔드(워크스페이스당 SQLite)를 제공하여 기존의 파일 기반 컨텍스트 관리 시스템을 대체합니다. ConPort는 MCP를 지원하는 다양한 IDE 및 클라이언트 인터페이스와 호환되는 범용 컨텍스트 백엔드로 설계되었습니다.

주요 특징은 다음과 같습니다.

  • SQLite를 사용한 구조화된 컨텍스트 저장소(작업 공간당 하나의 DB, 자동 생성).

  • Python/FastAPI로 빌드된 MCP 서버( context_portal_mcp ).

  • 상호작용을 위한 정의된 MCP 도구의 포괄적인 모음입니다(아래 "사용 가능한 ConPort 도구" 참조).

  • workspace_id 통한 다중 작업 공간 지원.

  • 기본 배포 모드: 긴밀한 IDE 통합을 위한 STDIO.

  • 컨텍스트 항목 간의 명시적 관계를 통해 동적 프로젝트 지식 그래프를 구축할 수 있습니다.

  • 고급 RAG를 구동하기 위해 벡터 데이터 저장의미 검색 기능이 포함되어 있습니다.

  • AI에 정확하고 쿼리 가능한 프로젝트 메모리를 제공하여 검색 증강 생성(RAG) 을 위한 이상적인 백엔드 역할을 합니다.

  • AI 어시스턴트가 호환 가능한 LLM 공급자와 함께 신속하게 캐싱할 수 있도록 구조화된 컨텍스트를 제공합니다.

필수 조건

시작하기 전에 다음 사항이 설치되어 있는지 확인하세요.

  • Python: 버전 3.8 이상을 권장합니다.

    • 파이썬 다운로드

    • 설치하는 동안 Python이 시스템의 PATH에 추가되었는지 확인하세요(특히 Windows의 경우).

  • uv: (강력 추천) 빠른 Python 환경 및 패키지 관리자입니다. uv 사용하면 가상 환경 생성 및 종속성 설치가 크게 간소화됩니다.

    • uv 설치

    • uv 사용하지 않기로 선택한 경우 표준 Python venvpip 사용할 수 있지만 이 프로젝트에서는 uv 사용하는 것이 좋습니다.

PyPI를 통한 설치:

MCP 서버를 설치한 디렉토리에 가상 환경을 만들고 활성화합니다.

uv

지엑스피1

환경 활성화:

Linux/macOS(bash/zsh):

source .venv/bin/activate

Windows(명령 프롬프트):

.venv\Scripts\activate.bat

윈도우(PowerShell):

.venv\Scripts\Activate.ps1

(PowerShell에서 실행 정책 문제가 발생하면 먼저 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 실행해야 할 수 있습니다.)

표준

MCP 서버 디렉토리에서:

python3 -m venv .venv # Or 'python -m venv .venv'

활성화 명령은 위의 uv 와 동일합니다.

PyPi를 통해 ConPort 설치:

uv를 사용하는 context-portal-mcp에 대한 PyPI 설치 명령은 다음과 같습니다.

uv pip install context-portal-mcp

가상 환경 내에서 표준 pip를 사용하는 경우 명령은 다음과 같습니다.

pip install context-portal-mcp

PyPI 설치를 위한 구성

PyPI( pip install context-portal-mcp )를 통해 ConPort를 설치한 경우, 가상 환경 내의 Python 인터프리터를 사용하여 ConPort 서버를 직접 실행할 수 있습니다. 이 방법은 실행 파일을 명시적으로 가리키므로 일반적으로 더 안정적입니다.

중요: 플레이스홀더 경로 /home/USER/PATH/TO/.venv/bin/python (또는 Windows의 C:\\Users\\USER\\PATH\\TO\\.venv\\Scripts\\python.exe )을 특정 ConPort 가상 환경 내의 Python 실행 파일에 대한 절대 경로 로 바꿔야 합니다 .

Linux/macOS 예:

{ "mcpServers": { "conport": { "command": "/home/USER/PATH/TO/.venv/bin/python", "args": [ "-m", "context_portal_mcp.main", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }

Windows 예:

{ "mcpServers": { "conport": { "command": "C:\\Users\\USER\\PATH\\TO\\.venv\\Scripts\\python.exe", "args": [ "-m", "context_portal_mcp.main", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }
  • command : 이는 ConPort 설치의 .venv 파일 내에서 실행 가능한 python (또는 Windows의 경우 python.exe )의 절대 경로여야 합니다.

  • args : ConPort 서버 모듈을 실행하기 위한 인수( -m context_portal_mcp.main )와 서버 인수( --mode stdio --workspace_id "${workspaceFolder}" )를 포함합니다.

  • ${workspaceFolder} : 이 IDE 변수는 현재 프로젝트 작업 공간의 절대 경로를 자동으로 제공하는 데 사용됩니다.

  • --log-file : 선택 사항: 서버 로그가 기록될 파일 경로입니다. 지정하지 않으면 로그는 stderr (콘솔)로 전송됩니다. 지속적인 로깅 및 서버 동작 디버깅에 유용합니다.

  • --log-level : 선택 사항: 서버의 최소 로깅 수준을 설정합니다. 유효한 옵션은 DEBUG , INFO , WARNING , ERROR , CRITICAL 입니다. 기본값은 INFO 입니다. 개발 또는 문제 해결 중에 자세한 출력을 원하면 DEBUG 로 설정하세요.

PyPI를 통해 설치하면 conport-mcp 명령을 가상 환경의 PATH에서 바로 사용할 수 있습니다. 서버를 실행하는 명령은 다음과 같습니다.

conport-mcp --mode stdio --workspace_id "/actual/path/to/your/project_workspace"

Git 저장소에서 설치

이 지침은 Git 저장소를 복제하고 종속성을 설치하여 ConPort를 설정하는 방법을 안내합니다. 가상 환경을 사용하는 것이 중요합니다.

  1. 저장소 복제: 터미널이나 명령 프롬프트를 열고 다음을 실행합니다.

    git clone https://github.com/GreatScottyMac/context-portal.git cd context-portal
  2. 가상 환경 만들기 및 활성화:

    • uv context-portal 디렉토리에서:

      uv venv
      • 환경 활성화:

        • Linux/macOS(bash/zsh):

          source .venv/bin/activate
        • Windows(명령 프롬프트):

          .venv\Scripts\activate.bat
        • 윈도우(PowerShell):

          .venv\Scripts\Activate.ps1

          (PowerShell에서 실행 정책 문제가 발생하면 먼저 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 실행해야 할 수 있습니다.)

    • 표준 context-portal 디렉토리에서:

      python3 -m venv .venv # Or 'python -m venv .venv'
      • 활성화 명령은 위의 uv 와 동일합니다.

  3. 종속성 설치: 가상 환경이 활성화된 경우:

    • uv

      uv pip install -r requirements.txt

      참고:

    • 표준

      pip install -r requirements.txt
  4. 설치 확인(선택 사항): 가상 환경이 활성화되었는지 확인하세요.

    • uv

      uv run python src/context_portal_mcp/main.py --help
    • 표준 bash python src/context_portal_mcp/main.py --help 이렇게 하면 ConPort 서버에 대한 명령줄 도움말이 출력됩니다.

권장 구성(직접 Python 호출):

이 구성은 context-portal 가상 환경에서 Python 인터프리터를 직접 호출합니다. uv 가 명령이거나 클라이언트가 서버 프로세스에 대한 cwd 필드를 지원하는지에 의존하지 않는 안정적인 방법입니다.

중요한:

  • 플레이스홀더 경로를 context-portal 저장소를 복제하고 설정한 위치에 해당하는 절대 경로 로 바꿔야 합니다 .

  • --workspace_id 인수의 "${workspaceFolder}" 변수는 현재 프로젝트 작업 공간의 절대 경로로 확장되어야 하는 일반적인 IDE 플레이스홀더입니다.

Linux/macOS 예:

context-portal 저장소가 /home/youruser/mcp-servers/context-portal 에 복제되었다고 가정해 보겠습니다.

{ "mcpServers": { "conport": { "command": "/home/youruser/mcp-servers/context-portal/.venv/bin/python", "args": [ "/home/youruser/mcp-servers/context-portal/src/context_portal_mcp/main.py", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }

Windows 예:

context-portal 저장소가 C:\Users\YourUser\MCP-servers\context-portal 에 복제되었다고 가정해 보겠습니다. JSON 문자열의 경로에는 두 개의 백슬래시 \\ 가 사용됩니다.

{ "mcpServers": { "conport": { "command": "C:\\Users\\YourUser\\MCP-servers\\context-portal\\.venv\\Scripts\\python.exe", "args": [ "C:\\Users\\YourUser\\MCP-servers\\context-portal\\src\\context_portal_mcp\\main.py", "--mode", "stdio", "--workspace_id", "${workspaceFolder}", "--log-file", "./logs/conport.log", "--log-level", "INFO" ] } } }
  • command : 이는 context-portal 설치의 .venv 파일 내에서 실행 가능한 python (또는 Windows의 경우 python.exe ) 파일의 절대 경로여야 합니다.

  • args : 이는 context-portal 설치 내의 main.py 스크립트에 대한 절대 경로여야 합니다.

  • --workspace_id "${workspaceFolder}" : 이는 ConPort에 관리할 프로젝트의 컨텍스트를 알려줍니다. ${workspaceFolder} IDE에서 현재 프로젝트의 루트 경로로 확인되어야 합니다.

  • --log-file : 선택 사항: 서버 로그가 기록될 파일 경로입니다. 지정하지 않으면 로그는 stderr (콘솔)로 전송됩니다. 지속적인 로깅 및 서버 동작 디버깅에 유용합니다.

  • --log-level : 선택 사항: 서버의 최소 로깅 수준을 설정합니다. 유효한 옵션은 DEBUG , INFO , WARNING , ERROR , CRITICAL 입니다. 기본값은 INFO 입니다. 개발 또는 문제 해결 중에 자세한 출력을 원하면 DEBUG 로 설정하세요.

복제된 Git 저장소를 통해 설치되는 경우 IDE는 일반적으로 다음과 유사한 명령을 구성하고 실행합니다.

uv run python /path/to/your/context-portal/src/context_portal_mcp/main.py --mode stdio --workspace_id "/actual/path/to/your/project_workspace"

/path/to/your/context-portal/ context-portal 저장소를 복제한 절대 경로입니다. "/actual/path/to/your/project_workspace" 는 ConPort가 관리할 컨텍스트가 있는 프로젝트의 루트에 대한 절대 경로입니다(예: VS Code의 ${workspaceFolder} ). ConPort는 your_project_workspace/context_portal/context.db 에 자동으로 데이터베이스를 생성합니다.

--workspace_id

특히 STDIO 모드( --mode stdio )에서 ConPort 서버를 시작하면 --workspace_id 인수는 여러 가지 주요 목적을 수행합니다.

  1. 초기 서버 컨텍스트: 서버 프로세스에 처음에 연관되어야 하는 프로젝트 작업 공간의 절대 경로를 제공합니다.

  2. 중요 안전 점검: STDIO 모드에서 이 경로는 서버가 자체 설치 디렉터리 내에 데이터베이스 파일( context.db , conport_vector_data/ )을 실수로 생성하는 것을 방지하는 중요한 점검을 수행하는 데 사용됩니다. 이를 통해 클라이언트가 작업 공간 경로를 올바르게 제공하지 않는 등 잘못된 구성을 방지할 수 있습니다.

  3. 클라이언트 실행 신호: MCP 클라이언트(IDE 확장 프로그램과 같은)가 서버에 어떤 프로젝트를 실행할지 신호를 보내는 표준 방식입니다.

중요 참고: 서버 시작 시 제공되는 --workspace_id 는 이후 모든 MCP 도구 호출 시 자동으로 workspace_id 매개변수로 사용되지 않습니다 . ConPort 도구는 각 호출 시 명시적으로 workspace_id 매개변수를 요구하도록 설계되었습니다(예: get_product_context({"workspace_id": "..."}) ). 이러한 설계는 단일 서버 인스턴스가 여러 작업 공간을 관리할 수 있도록 지원하고 각 작업의 명확성을 보장합니다. 클라이언트 IDE/MCP 클라이언트는 각 도구 호출 시 정확한 workspace_id 제공해야 합니다.

핵심 요점: ConPort는 대상 프로젝트를 식별하기 위해 정확한 --workspace_id 매우 중요하게 사용합니다. ${workspaceFolder} 와 같은 IDE 변수를 사용하거나 직접 절대 경로를 제공하여 이 인수가 프로젝트 작업 공간의 절대 경로로 올바르게 해석되는지 확인하세요.

Python 바이트코드 캐시 지우기

ConPort를 업데이트하거나 재설치한 후 __pycache__ 디렉터리에 저장된 오래된 Python 바이트코드 파일( .pyc )로 인해 예기치 않은 동작이나 오류가 발생할 수 있습니다. 이 캐시를 삭제하면 이러한 문제를 해결할 수 있습니다.

Unix 계열 시스템(Linux, macOS, WSL)에서 find 명령을 사용하여 이러한 파일과 디렉토리를 찾아 제거할 수 있습니다.

  1. __pycache__

    find . -type d -name "__pycache__" -exec rm -rf {} +
  2. .pyc

    find . -type f -name "*.pyc" -delete

다음 명령을 실행할 위치:

이러한 명령을 실행해야 하는 디렉토리는 ConPort를 설치한 방법에 따라 달라집니다.

  • Git 저장소에서 설치한 경우: 복제된 context-portal 저장소의 루트 디렉토리에서 다음 명령을 실행합니다.

  • PyPI를 통해 설치한 경우: ConPort가 설치된 Python 환경의 site-packages 디렉토리에서 다음 명령을 실행합니다(예: 가상 환경의 lib/pythonX.Y/site-packages/ ).

  • Docker 이미지에서 실행하는 경우: 일반적으로 docker exec <container_id> <command> 사용하여 실행 중인 Docker 컨테이너 내부에서 이러한 명령을 실행합니다.

LLM 에이전트와 함께 사용(맞춤형 지침)

ConPort는 LLM 에이전트에 대한 특정 맞춤 지침이나 시스템 프롬프트를 제공함으로써 LLM 에이전트와의 효율성을 크게 향상시킵니다. 이 저장소에는 다양한 환경에 맞는 맞춤형 전략 파일이 포함되어 있습니다.

  • Roo 코드의 경우:

    • roo_code_conport_strategy : Roo Code VS Code 확장 기능 내에서 작동하는 LLM에 대한 자세한 지침을 담고 있으며, 컨텍스트 관리를 위한 ConPort 도구를 사용하는 방법을 안내합니다.

  • CLine의 경우:

    • cline_conport_strategy : Cline VS Code 확장 프로그램 내에서 작동하는 LLM을 위한 자세한 지침을 담고 있으며, 컨텍스트 관리를 위한 ConPort 도구를 사용하는 방법을 안내합니다.

  • 윈드서프 캐스케이드의 경우:

    • cascade_conport_strategy : Windsurf Cascade 환경에 통합된 LLM을 위한 구체적인 지침입니다. 중요 : Cascade에서 세션을 시작할 때 LLM에게 다음 사항을 명시적으로 알려야 합니다.

    Initialize according to custom instructions
  • 일반/플랫폼 무관 사용:

    • generic_conport_strategy : MCP 지원 LLM에 대한 플랫폼 독립적인 명령어 세트를 제공합니다. ConPort의 get_conport_schema 연산을 사용하여 정확한 ConPort 도구 이름과 매개변수를 동적으로 검색하고, 특정 도구 호출 세부 정보를 하드코딩하는 대신 LLM이 개념적 상호작용(의사결정 로깅 또는 제품 컨텍스트 업데이트 등)을 언제 , 수행해야 하는지 안내합니다.

이러한 전략 파일을 사용하는 방법:

  1. LLM 에이전트의 환경과 관련된 전략 파일을 식별합니다.

  2. 해당 파일의 전체 내용을 복사합니다.

  3. LLM의 사용자 지정 지침이나 시스템 프롬프트 영역에 붙여넣으세요. 방법은 LLM 플랫폼(IDE 확장 프로그램 설정, 웹 UI, API 구성)에 따라 다릅니다.

이러한 지침은 LLM에게 다음과 같은 지식을 제공합니다.

  • ConPort에서 컨텍스트를 초기화하고 로드합니다.

  • 새로운 정보(결정, 진행 상황 등)로 ConPort를 업데이트합니다.

  • 사용자 정의 데이터와 관계를 관리합니다.

  • workspace_id 의 중요성을 이해하세요. 세션 시작을 위한 중요 팁: LLM 에이전트가 컨텍스트를 올바르게 초기화하고 로드하도록 하려면, 특히 첫 번째 메시지의 사용자 지정 지침을 항상 엄격하게 준수하지 않는 인터페이스에서 " Initialize according to custom instructions. 이렇게 하면 에이전트가 전략 파일에 정의된 대로 ConPort 초기화 시퀀스를 수행하도록 유도할 수 있습니다.

작업 공간에서의 초기 ConPort 사용

새 프로젝트 작업 공간이나 기존 프로젝트 작업 공간에서 ConPort를 처음 사용할 때, ConPort 데이터베이스( context_portal/context.db )가 없으면 서버에서 자동으로 생성됩니다. 초기 프로젝트 컨텍스트, 특히 제품 컨텍스트를 부트스트랩하는 데 도움이 되도록 다음 사항을 고려하세요.

projectBrief.md 파일 사용(권장)

  1. projectBrief.md 프로젝트 작업 공간의 루트 디렉토리에 projectBrief.md 라는 이름의 파일을 만듭니다.

  2. 콘텐츠 추가: 이 파일에 프로젝트에 대한 간략한 개요를 추가하세요. 다음 내용을 포함할 수 있습니다.

    • 프로젝트의 주요 목표 또는 목적.

    • 주요 기능 또는 구성 요소.

    • 타겟 고객 또는 사용자.

    • 전반적인 건축 양식 또는 핵심 기술(알려진 경우).

    • 프로젝트를 정의하는 기타 기본 정보입니다.

  3. 가져오기에 대한 자동 프롬프트: 제공된 ConPort 사용자 정의 명령어 세트(예: roo_code_conport_strategy ) 중 하나를 사용하는 LLM 에이전트가 작업 공간에서 초기화할 때 다음을 수행하도록 설계되었습니다.

    • projectBrief.md 가 존재하는지 확인하세요.

    • 해당 파일을 찾으면 해당 파일을 읽고 해당 내용을 ConPort 제품 컨텍스트 로 가져올지 묻습니다.

    • 동의하시면 해당 콘텐츠가 ConPort에 추가되어 프로젝트의 제품 컨텍스트에 대한 즉각적인 기준이 제공됩니다.

수동 초기화

projectBrief.md 찾을 수 없거나 가져오지 않기로 선택한 경우:

  • LLM 에이전트(사용자 지정 지침에 따라)는 일반적으로 ConPort 제품 컨텍스트가 초기화되지 않은 것으로 표시된다고 알려줍니다.

  • 작업 공간에 있는 다른 파일을 나열하여 관련 정보를 수집함으로써 제품 컨텍스트를 수동으로 정의하는 데 도움이 될 수 있습니다.

projectBrief.md 나 수동 입력을 통해 초기 컨텍스트를 제공하면 ConPort와 연결된 LLM 에이전트가 처음부터 프로젝트에 대한 기본적 이해를 더 잘 얻을 수 있습니다.

사용 가능한 ConPort 도구

ConPort 서버는 MCP를 통해 다음 도구를 제공하여 기본 프로젝트 지식 그래프 와의 상호작용을 지원합니다. 여기에는 벡터 데이터 저장소 를 기반으로 하는 의미 검색 도구가 포함됩니다. 이러한 도구는 AI 에이전트의 증강 생성(RAG) 에 필수적인 검색 기능을 지원합니다. 모든 도구는 대상 프로젝트 작업 공간을 지정하기 위해 workspace_id 인수(문자열, 필수)를 필요로 합니다.

  • 제품 컨텍스트 관리:

    • get_product_context : 전반적인 프로젝트 목표, 기능 및 아키텍처를 검색합니다.

    • update_product_context : 제품 컨텍스트를 업데이트합니다. 전체 content (객체) 또는 부분 업데이트의 경우 patch_content (객체)를 받습니다(patch에서 키를 제거하려면 __DELETE__ 값으로 사용하세요).

  • 활성 컨텍스트 관리:

    • get_active_context : 현재 작업 초점, 최근 변경 사항, 열려 있는 문제를 검색합니다.

    • update_active_context : 활성 컨텍스트를 업데이트합니다. 전체 content (객체) 또는 부분 업데이트의 경우 patch_content (객체)를 받습니다(patch에서 __DELETE__ 값으로 사용하여 키를 제거합니다).

  • 의사결정 로깅:

    • log_decision : 아키텍처나 구현 결정을 기록합니다.

      • 인수: summary (str, req), rationale (str, opt), implementation_details (str, opt), tags (list[str], opt).

    • get_decisions : 기록된 결정을 검색합니다.

      • 인수: limit (int, opt), tags_filter_include_all (list[str], opt), tags_filter_include_any (list[str], opt).

    • search_decisions_fts : 결정 필드(요약, 근거, 세부 정보, 태그)에 대한 전체 텍스트 검색.

      • 인수: query_term (str, req), limit (int, opt).

    • delete_decision_by_id : ID로 결정을 삭제합니다.

      • 인수: decision_id (int, req).

  • 진행 상황 추적:

    • log_progress : 진행률 항목이나 작업 상태를 기록합니다.

      • 인수: status (str, req), description (str, req), parent_id (int, opt), linked_item_type (str, opt), linked_item_id (str, opt).

    • get_progress : 진행률 항목을 검색합니다.

      • 인수: status_filter (str, opt), parent_id_filter (int, opt), limit (int, opt).

    • update_progress : 기존 진행률 항목을 업데이트합니다.

      • 인수: progress_id (정수, 요청), status (문자열, 옵션), description (문자열, 옵션), parent_id (정수, 옵션).

    • delete_progress_by_id : ID로 진행률 항목을 삭제합니다.

      • 인수: progress_id (int, req).

  • 시스템 패턴 관리:

    • log_system_pattern : 시스템/코딩 패턴을 기록하거나 업데이트합니다.

      • 인수: name (str, req), description (str, opt), tags (list[str], opt).

    • get_system_patterns : 시스템 패턴을 검색합니다.

      • 인수: tags_filter_include_all (list[str], opt), tags_filter_include_any (list[str], opt).

    • delete_system_pattern_by_id : ID로 시스템 패턴을 삭제합니다.

      • 인수: pattern_id (int, req).

  • 맞춤형 데이터 관리:

    • log_custom_data : 카테고리 아래의 사용자 지정 키-값 항목을 저장/업데이트합니다. 값은 JSON 직렬화 가능합니다.

      • 인수: category (str, req), key (str, req), value (any, req).

    • get_custom_data : 사용자 정의 데이터를 검색합니다.

      • 인수: category (str, opt), key (str, opt).

    • delete_custom_data : 특정 사용자 정의 데이터 항목을 삭제합니다.

      • 인수: category (str, req), key (str, req).

    • search_project_glossary_fts : 'ProjectGlossary' 사용자 정의 데이터 범주 내에서 전체 텍스트 검색.

      • 인수: query_term (str, req), limit (int, opt).

    • search_custom_data_value_fts : 모든 사용자 정의 데이터 값, 범주 및 키에 대한 전체 텍스트 검색.

      • 인수: query_term (str, req), category_filter (str, opt), limit (int, opt).

  • 컨텍스트 연결:

    • link_conport_items : 두 ConPort 항목 간의 관계 링크를 생성하여 프로젝트 지식 그래프를 명시적으로 구축합니다.

      • 인수: source_item_type (str, req), source_item_id (str, req), target_item_type (str, req), target_item_id (str, req), relationship_type (str, req), description (str, opt).

    • get_linked_items : 특정 항목에 연결된 항목을 검색합니다.

      • 인수: item_type (str, req), item_id (str, req), relationship_type_filter (str, opt), linked_item_type_filter (str, opt), limit (int, opt).

  • 역사 및 메타 도구:

    • get_item_history : 제품 또는 활성 컨텍스트의 버전 기록을 검색합니다.

      • 인수: item_type ("product_context" | "active_context", req), version (int, opt), before_timestamp (datetime, opt), after_timestamp (datetime, opt), limit (int, opt).

    • get_recent_activity_summary : 최근 ConPort 활동에 대한 요약을 제공합니다.

      • 인수: hours_ago (int, opt), since_timestamp (datetime, opt), limit_per_type (int, opt, 기본값: 5).

    • get_conport_schema : 사용 가능한 ConPort 도구와 해당 인수의 스키마를 검색합니다.

  • 수입/수출:

    • export_conport_to_markdown : ConPort 데이터를 마크다운 파일로 내보냅니다.

      • 인수: output_path (str, opt, 기본값: "./conport_export/").

    • import_markdown_to_conport : 마크다운 파일의 데이터를 ConPort로 가져옵니다.

      • 인수: input_path (str, opt, 기본값: "./conport_export/").

  • 배치 작업:

    • batch_log_items : 단일 호출에서 동일한 유형의 여러 항목(예: 결정, 진행 항목)을 기록합니다.

      • 인수: item_type (str, req - 예: "decision", "progress_entry"), items (list[dict], req - 항목 유형에 대한 Pydantic 모델 dict 목록).

신속한 캐싱 전략

ConPort는 AI 어시스턴트가 호환되는 LLM 제공업체(예: Google Gemini, Anthropic Claude, OpenAI)와 즉시 캐싱하는 데 활용할 수 있는 구조화된 컨텍스트(시맨틱 검색을 위한 벡터 데이터 포함)를 제공하는 데 사용할 수 있습니다. 즉시 캐싱은 자주 사용되는 프롬프트 부분을 재사용하여 토큰 비용과 지연 시간을 줄여줍니다.

이 저장소에는 LLM 어시스턴트가 ConPort에서 캐시 가능한 콘텐츠를 식별하고 다양한 공급자에 대한 프롬프트를 구성하는 방법을 정의하는 자세한 전략 파일( context_portal/prompt_caching_strategy.yml )이 포함되어 있습니다.

전략의 핵심 측면은 다음과 같습니다.

  • 캐시 가능한 콘텐츠 식별: 제품 컨텍스트, 세부적인 시스템 패턴 또는 특정 사용자 정의 데이터 항목(특히 cache_hint: true 메타데이터로 플래그가 지정된 항목)과 같은 크고 안정적인 컨텍스트를 우선시합니다.

  • 공급자별 상호작용:

    • 암시적 캐싱(Gemini, OpenAI): 캐시 가능한 ConPort 콘텐츠를 프롬프트의 절대 시작 부분에 배치하여 프롬프트를 구조화합니다. LLM 제공자가 캐싱을 자동으로 처리합니다.

    • 명시적 캐싱(인류학적): 프롬프트 페이로드 내의 캐시 가능한 ConPort 콘텐츠 뒤에 cache_control 중단점을 삽입합니다.

  • 사용자 힌트: ConPort의 사용자 정의 데이터에는 cache_hint: true 와 같은 메타데이터를 포함하여 LLM 어시스턴트가 캐싱을 위한 콘텐츠 우선순위를 명시적으로 지정할 수 있습니다.

  • LLM 어시스턴트 알림: LLM 어시스턴트는 잠재적인 캐싱에 대한 프롬프트를 구성할 때(예: [INFO: Structuring prompt for caching] ) 사용자에게 알리도록 지시받습니다.

ConPort를 사용하여 프로젝트의 지식을 관리하고 LLM 어시스턴트에게 신속한 캐싱 전략을 제공하면 AI 상호작용의 효율성과 비용 효과를 높일 수 있습니다.

추가 자료

ConPort의 디자인, 아키텍처, 고급 사용 패턴에 대한 자세한 내용은 다음을 참조하세요.

기여하다

ConPort 프로젝트에 기여하는 방법에 대한 자세한 내용은 나중에 여기에 추가될 예정입니다.

특허

이 프로젝트는 Apache-2.0 라이선스 에 따라 라이선스가 부여되었습니다.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GreatScottyMac/context-portal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server