Skip to main content
Glama
DarkMatterProductions

mcp-project-context-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CHROMA_DIRNoChromaDB persistence directory, e.g., ~/.mcp-data/chroma~/.mcp-data/chroma
EMBED_MODELYesEmbedding model name, e.g., nomic-embed-text
OLLAMA_HOSTYesOllama server URL, e.g., http://localhost:11434
PROJECT_PATHNoPath to project root (optional, defaults to CWD)
MCP_TOOL_PREFIXNoPrefix for tool namesproject-context-
EMBED_CONCURRENCYNoMax concurrent embedding requests4

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_context_indexA

Semantically search the whole indexed project context. Use this first to find which files are relevant to your task, then pass their paths to load_context_files — do not rely on this tool's snippets alone.

search_adr_indexA

Semantically search only the architecture decision records under .context/decisions/. Use this to find ADRs relevant to your current task, then pass their paths to load_context_files — do not rely on this tool's snippets alone. If you need to search across all files in the project, use search_project_files instead.

search_session_filesA

Semantically search only past session summaries under .context/sessions/. Use this to find prior session notes relevant to a topic, then pass their paths to load_context_files — do not rely on this tool's snippets alone.

find_latest_session_fileA

Deterministically find the most recent .context/sessions/*.md file (sorted by filename, not semantic relevance). Pass the returned path to load_context_files to load it — do not rely on this tool's snippets alone.

load_context_filesA

Load specific .context/-relative files into the active context. Each loaded file is tagged with its path and a SHA-512 hash of its contents so reload_active_context_file can later detect changes. Only pass files you actually need — do not load the whole .context/ tree.

reload_active_context_fileA

Check whether files currently held in active context (previously loaded via load_context_files) have changed on disk, by comparing their known SHA-512 hash against the current one. Returns fresh tagged content for changed files, a short 'no change' message for unchanged files, and 'not found' for deleted files.

save_session_summaryA

Save a summary of the current session to .context/sessions/YYYY-MM-DD.md. Call this at the end of a session with a concise summary of what was done.

index_project_contextB

Re-index the .context/ directory into the vector store. Run this after updating project.md, adding ADRs, or refreshing BUNDLE.md.

list_repositoriesA

List repositories accessible via the configured repository provider. In multi-tenant deployments, use this to discover which repositories are available before calling other tools. Optionally filter by organisation name.

list_adrsA

List every ADR in .context/decisions/ as a lightweight table (number, title, status, filename). Use this before read_adr/read_adr_section to find which ADR you need, without loading full ADR content.

read_adrA

Read one ADR's full raw content by number or filename, tagged with its path and SHA-512 hash so reload_active_context_file can later detect changes. Prefer read_adr_section when you only need one section.

read_adr_statusA

Read one ADR's title and parsed Status without loading its full content. Returns an explicit message for ADRs using the legacy **Status:** inline format.

list_adr_sectionsA

List one ADR's top-level (##) section names, in document order.

read_adr_sectionA

Read a single named top-level (##) section of one ADR (e.g. 'Context', 'Decision', 'Consequences'). Use list_adr_sections first if you don't know the exact section name.

search_adr_sectionsA

Semantically search within a single resolved ADR, scoped by number or filename. Use this to find relevant sections/passages inside one ADR you've already identified (e.g. via list_adrs or search_adr_index).

create_adrA

Create a new ADR: allocates the next sequential number, writes a 'Proposed'-status stub with the given title and context, and placeholder text in the remaining sections (Decision, Consequences, Alternatives Considered, ADR Review Discussion). No lock/retry against concurrent creation.

edit_adrA

Replace a single named top-level (##) section of one ADR. Rejects the 'Status' section — use update_adr_status for status transitions instead.

update_adr_statusA

Transition one ADR's Status, with lifecycle guardrails: rejects unknown statuses; requires the target ADR to already exist for 'Superseded by ADR-XXXXX'; requires an 'explanation' for unusual (non-adjacent-forward) transitions; requires a populated Decision section (or an 'explanation' to fold into it) before moving to 'Accepted'; and removes the 'ADR Review Discussion' section once 'Accepted' is reached.

write_projectC

Overwrite the full content of .context/project.md.

edit_projectB

Replace a single named top-level (##) section of .context/project.md.

get_bootstrap_questionsA

Get the interview question set for a bootstrap artifact (currently 'project', for .context/project.md). Ask the user each question, then pass the answers as project_sections to bootstrap_context. Pass project_path to also merge in any repo-supplied custom questions from a .project-bootstrap-questions.yaml file at the repository root.

bootstrap_contextA

Atomically scaffold a brand-new .context/ directory for a project that doesn't have one yet: creates decisions/ and sessions/, writes the bundled ADR_CREATE_AND_MANAGEMENT.md and PLANNING_LOOP.md governance docs, writes an interview-driven project.md (answers from get_bootstrap_questions), and creates a governance ADR-00001 establishing the project's ADR process. Every step is additive and idempotent — artifacts that already exist are skipped, not overwritten. If the repository has a .project-bootstrap-questions.yaml file at its root, its questions are merged into the interview set used for project.md.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 22 tools

Disambiguation5/5

Each tool targets a distinct resource and action—ADRs, project files, sessions, index, and context loading—with clear boundaries. Even overlapping tools like read_adr vs read_adr_section are sharply differentiated, and the search tools are scoped by file type.

Naming Consistency5/5

All 22 tools follow a consistent verb_noun snake_case pattern (load_context_files, list_adrs, create_adr, update_adr_status, bootstrap_context, etc.). No mixed conventions or vague verbs.

Tool Count4/5

22 tools is on the heavier side but justified by the breadth of the domain: ADR lifecycle, project management, sessions, context indexing, and bootstrap. Each tool has a clear role, though a few could potentially be consolidated.

Completeness4/5

The surface covers the full .context lifecycle: bootstrap, project file management, ADR CRUD (minus delete), session saving/searching, and context reload. Minor gaps exist—no explicit session listing or ADR deletion—but these are workarounds via other tools.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive