Skip to content

Commit be96eab

Browse files
committed
elease: add multilingual GitHub Pages docs and ship v2.1.0 - 2026-03-31
1 parent 3e89ce3 commit be96eab

22 files changed

+3192
-103
lines changed

.mcp-project

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
local-mcp-server

CHANGELOG.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,57 @@ This project follows a structured change history to track architectural evolutio
66

77
---
88

9+
## [v2.1.0] — Documentation Site, Project Identity & Coordination Upgrades
10+
11+
### Added
12+
13+
* Added MCP project intelligence tools:
14+
15+
* `create_project_map`
16+
* `fetch_project_map`
17+
18+
* Added missing task coordination tools:
19+
20+
* `assign_task`
21+
* `update_task`
22+
23+
* Added richer project map persistence fields:
24+
25+
* `key_details`
26+
* `related_tasks`
27+
* `last_verified_at`
28+
* Added a GitHub Pages-ready documentation site in `docs/` with:
29+
30+
* installation and setup guidance
31+
* integration walkthroughs
32+
* MCP tool and API reference
33+
* project identity guidance
34+
* copyable examples
35+
* multilingual language switching
36+
* Added documentation site assets and metadata:
37+
38+
* `favicon.ico`
39+
* `favicon.svg`
40+
* web manifest
41+
* robots.txt
42+
* sitemap.xml
43+
* Added project identity migration tooling:
44+
45+
* `.mcp-project`
46+
* `migrate-project-id.js`
47+
48+
### Changed
49+
50+
* Scoped `fetch_tasks` to the active project and added filtering by assignment, creator, status, and limit
51+
* Scoped messaging retrieval to the active project to avoid cross-project coordination bleed
52+
* Upgraded project-map storage to upsert by `project + file_path`, making the structure knowledge reusable instead of duplicative
53+
* Unified project identity derivation across `mcp-shim.js` and direct `mcp-server.js` launches with a shared resolver, `MCP_PROJECT_ROOT`, and project-local override support via `.mcp-project`
54+
* Updated agent instructions and README to reflect the task-claiming and project-map workflow
55+
* Updated the validation script to include syntax checking for `docs/app.js`
56+
* Expanded project bootstrap guidance to include the current tool surface and project-map seeding guidance
57+
58+
---
59+
960
## [v2.0.0] — Multi-Agent System & MCP Evolution
1061

1162
Major architectural upgrade introducing a distributed multi-agent system with tasks, messaging, agent coordination, and project intelligence.

PROJECT_MEMORY_BOOTSTRAP.md

Lines changed: 87 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ Impact: Keep MCP transport concerns separate from HTTP persistence concerns.
3030
Type: constraint
3131
Title: environment-driven identity
3232
Context: MCP launch configuration
33-
Details: Agent, project, scope, and server URL are injected through environment variables. MCP_AGENT identifies the client. MCP_PROJECT groups memory by project. MCP_SCOPE controls visibility. Missing values fall back to defaults in mcp-server.js.
34-
Why: Incorrect launch config produces misleading stored metadata such as unknown agent or default project.
33+
Details: Agent, project, scope, and server URL are injected through environment variables. MCP_AGENT identifies the client. MCP_PROJECT groups memory by project. MCP_SCOPE controls visibility. Project identity resolution now prefers a project-local override file (`.mcp-project` / `.mcp-project.json`), then project `.env`, then package metadata, then the nearest project-root folder. MCP_PROJECT_ROOT is injected for traceability.
34+
Why: Incorrect launch config produces misleading stored metadata such as unknown agent or a generic workspace namespace like vscode.
3535
Impact: Verify launch configuration before debugging memory attribution problems.
3636
```
3737

@@ -52,9 +52,91 @@ Impact: Preserve index initialization when changing startup or search logic.
5252
Type: note
5353
Title: current MCP tool surface
5454
Context: protocol behavior
55-
Details: The server exposes store_context, search_context, log_action, get_full_context, start_session, get_agent_instructions, and get_logs. store_context currently accepts only content from the MCP client side.
56-
Why: Agents should not assume richer tool inputs than the MCP layer actually exposes.
57-
Impact: Put important structured information directly into the stored content text.
55+
Details: The server exposes memory tools, task tools (create_task, fetch_tasks, assign_task, update_task), messaging tools, agent registration tools, and project intelligence tools (create_project_map, fetch_project_map). store_context still accepts only content from the MCP client side, but structured project knowledge should now go into the project-map system instead of free-form memory whenever possible.
56+
Why: Agents should not assume outdated MCP tool limits or skip the structured coordination/project-map layers.
57+
Impact: Prefer project-map entries for architecture and file-ownership knowledge, and tasks/messages for coordination state.
58+
```
59+
60+
## Project Map Seeds
61+
62+
Use the following entries to bootstrap the structured project map for this repository.
63+
64+
```text
65+
Path: .
66+
Type: project
67+
Summary: Distributed MCP memory server for multi-agent coordination with MongoDB-backed persistence, task management, messaging, agent registration, and reusable project intelligence.
68+
Key Details:
69+
- Core runtime is split between MCP stdio transport and Express persistence API.
70+
- Project identity is derived from nearest root markers and slugified for stable namespaces.
71+
- Shared goal is coordination and knowledge reuse across AI agents, not isolated tool execution.
72+
```
73+
74+
```text
75+
Path: mcp-server.js
76+
Type: module
77+
Summary: MCP stdio entrypoint that defines the tool surface, starts the HTTP API on demand, injects agent/project identity, and forwards tool calls to backend routes.
78+
Key Details:
79+
- Uses the same project identity resolver as the shim.
80+
- Exposes task, messaging, and project-map tools for agents.
81+
- Waits for the HTTP API before calling backend endpoints.
82+
```
83+
84+
```text
85+
Path: server.js
86+
Type: module
87+
Summary: Express API and persistence orchestration layer that handles contexts, actions, sessions, agents, tasks, messages, logs, and project-map entries.
88+
Key Details:
89+
- Creates Mongo indexes during startup.
90+
- Enforces project-scoped task/message/project-map retrieval patterns.
91+
- Upserts project-map entries by project plus file_path.
92+
```
93+
94+
```text
95+
Path: mcp.model.js
96+
Type: module
97+
Summary: Shared data model definitions for stored entities and memory normalization utilities.
98+
Key Details:
99+
- BaseModel injects shared metadata like project, agent, scope, tags, and timestamps.
100+
- TaskModel now stores blocker/result handoff state.
101+
- ProjectMapModel stores structural summaries, relationships, key details, and related tasks.
102+
```
103+
104+
```text
105+
Path: mcp-shim.js
106+
Type: module
107+
Summary: Launch wrapper that derives project identity from the current working tree and starts mcp-server.js with piped stdio.
108+
Key Details:
109+
- Sets MCP_PROJECT automatically when not provided.
110+
- Sets MCP_PROJECT_ROOT for traceability.
111+
- Keeps protocol-safe stdio wiring between editor/agent and MCP server.
112+
```
113+
114+
```text
115+
Path: utils/projectIdentity.js
116+
Type: module
117+
Summary: Shared utility for finding the nearest project root marker and deriving a stable slugified project identifier.
118+
Key Details:
119+
- Single source of truth for project identity resolution.
120+
- Used by both the shim and the direct MCP entrypoint.
121+
- Prevents namespace drift between different launch paths.
122+
```
123+
124+
```text
125+
Path: logger.js
126+
Type: module
127+
Summary: Writes operational logs to MongoDB and promotes errors into reusable memory entries for future debugging.
128+
Key Details:
129+
- Keeps logs out of MCP stdout.
130+
- Converts runtime errors into global context entries with metadata.
131+
```
132+
133+
```text
134+
Path: startMemoryServer.js
135+
Type: module
136+
Summary: Ensures the Express API starts only once per process and can be reused by MCP calls safely.
137+
Key Details:
138+
- Prevents duplicate API bootstrap inside one runtime.
139+
- Resets startup promise on failure so startup can be retried.
58140
```
59141

60142
## Suggested Seed Actions

README.md

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ MongoDB (Persistence Layer)
6262
- Work coordination between agents
6363
- Task lifecycle:
6464
- pending → in_progress → completed / blocked
65+
- Supports claiming ownership and status handoffs
6566
- Prevents duplication of work
6667
6768
---
@@ -89,6 +90,7 @@ MongoDB (Persistence Layer)
8990
- dependencies
9091
- relationships
9192
- architecture patterns
93+
- key implementation details and related tasks
9294
- Enables system-level reasoning
9395
9496
---
@@ -122,16 +124,25 @@ MongoDB (Persistence Layer)
122124
| Tool | Description |
123125
|------|------------|
124126
| `create_task` | Create task |
125-
| `fetch_tasks` | Get tasks |
126-
| *(API)* `/task/assign` | Assign task |
127+
| `fetch_tasks` | Get project-scoped tasks with filters |
128+
| `assign_task` | Claim or assign task ownership |
129+
| `update_task` | Update task status, blockers, or results |
127130
128131
---
129132
130133
### 💬 Messaging Tools
131134
| Tool | Description |
132135
|------|------------|
133136
| `send_message` | Send message |
134-
| `request_messages` | Fetch messages |
137+
| `request_messages` | Fetch project-scoped messages |
138+
139+
---
140+
141+
### 🗺 Project Map Tools
142+
| Tool | Description |
143+
|------|------------|
144+
| `create_project_map` | Store reusable project structure intelligence |
145+
| `fetch_project_map` | Retrieve project structure intelligence |
135146
136147
---
137148
@@ -204,6 +215,36 @@ mcp-shim.js
204215
* Zero per-project config
205216
* Clean multi-project isolation
206217

218+
### Project Identity
219+
220+
Both `mcp-shim.js` and direct `mcp-server.js` launches now derive the project name from the same resolver and slugify it into a stable `MCP_PROJECT` value. Resolution order is:
221+
222+
1. `.mcp-project` or `.mcp-project.json` in the project root
223+
2. `MCP_PROJECT` from the project `.env`
224+
3. `package.json` name / `mcpProject`
225+
4. nearest project-root folder name
226+
227+
The shim also injects `MCP_PROJECT_ROOT` so agents can trace which workspace produced a memory entry. This repository now pins its identifier with `.mcp-project` and `.env` to `local-mcp-server`, so it will not inherit a generic workspace name like `vscode`.
228+
229+
If you already have old documents stored under another project name such as `vscode`, run `npm run migrate:project-id -- vscode local-mcp-server` to rewrite existing records in MongoDB.
230+
231+
---
232+
233+
## 📚 Documentation Site
234+
235+
A GitHub Pages-ready documentation site now lives in the [`docs/`](./docs/) folder.
236+
237+
It includes:
238+
239+
* installation and setup guidance
240+
* editor and MCP integration patterns
241+
* tool and API reference
242+
* project identity and migration guidance
243+
* copyable examples
244+
* multilingual navigation
245+
246+
To publish it, enable GitHub Pages for the repository branch and select the `/docs` folder as the source.
247+
207248
---
208249

209250
## 🧠 Execution Model (v2)

agent-instruction.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ MCP SERVER REALITY
4040
- store_context accepts ONLY: { content }
4141
- search_context returns ranked summaries
4242
- get_full_context returns structured JSON
43+
- fetch_tasks returns project-scoped task lists with assignment/status filters
44+
- send_message and request_messages are project-scoped
45+
- project structure is stored via create_project_map / fetch_project_map
4346
- get_logs = backend debugging ONLY
4447
4548
Do NOT assume unsupported fields or hidden features.
@@ -109,14 +112,19 @@ Use when:
109112
110113
Behavior:
111114
- Prefer existing project_map over re-analysis
115+
- Use fetch_project_map before remapping a project area
112116
- Update ONLY when:
113117
- structure changes
114118
- new modules introduced
119+
- Persist updates with create_project_map
120+
- file_path should be relative to project root
121+
- Use "." for project-level summaries
115122
- Do NOT store trivial file listings
116123
- Store:
117124
- relationships
118125
- dependencies
119126
- architecture patterns
127+
- key details that unblock future agents
120128
121129
Goal:
122130
→ persistent system-level awareness across agents
@@ -175,6 +183,15 @@ Use create_task when:
175183
- system impact
176184
- coordination required
177185
186+
Use assign_task when:
187+
- claiming ownership
188+
- routing work to another agent
189+
190+
Use update_task when:
191+
- status changes
192+
- blocked reason discovered
193+
- handoff result is ready
194+
178195
Before acting:
179196
→ ALWAYS fetch_tasks
180197
@@ -246,8 +263,10 @@ start_session → track multi-step work
246263
get_logs → backend debugging
247264
248265
create_task / fetch_tasks → task system
266+
assign_task / update_task → task coordination
249267
send_message / request_messages → communication
250268
register_agent / list_agents → agent system
269+
create_project_map / fetch_project_map → project structure intelligence
251270
252271
Rules:
253272
- Do NOT use blindly

docs/.nojekyll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

0 commit comments

Comments
 (0)