Central Memory MCP

Community Productivity

Workspace-grounded knowledge graph shared by multiple developers, hosted on Azure Functions with Table storage.

What can you do with Central Memory MCP?

  • read_graph - returns all entities for a workspace (relations currently queried separately and joined)
  • upsert_entity - create or update entity (preserves existing Id if name exists)
  • upsert_relation - create or update relation between two entities (requires GUIDs or resolvable names)
  • get_entity_relations - list relations originating from a specific entity
  • Health & Ready endpoints (/api/health, /api/ready)

Install

The installation steps are in the documentation below. Documentation

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Central Memory MCP Server (.NET 10 Azure Functions)
  2. Implemented MCP Tools
  3. Data Model
  4. Quick Start
  5. Directory Layout
  6. Usage Notes
  7. Logging & Telemetry
  8. Roadmap
  9. License

Central Memory MCP Server (.NET 10 Azure Functions)

Model Context Protocol (MCP) compliant memory & knowledge graph server implemented in .NET 10 (Azure Functions isolated worker). Provides durable project memory (entities, relations, observations) for AI assistants with workspace isolation and simple HTTP tool endpoints.

Implemented MCP Tools

Current function set (alpha stage):

  • read_graph - returns all entities for a workspace (relations currently queried separately and joined)
  • upsert_entity - create or update entity (preserves existing Id if name exists)
  • upsert_relation - create or update relation between two entities (requires GUIDs or resolvable names)
  • get_entity_relations - list relations originating from a specific entity
  • Health & Ready endpoints (/api/health, /api/ready)

Planned (not yet implemented): search_entities, search_relations, stats, temporal, batch operations, merge/detect duplicates.

Data Model

  • Entities table: PartitionKey = WorkspaceName, RowKey = Guid (Id)
  • Relations table: PartitionKey = WorkspaceName, RowKey = Guid (Id)
  • Workspaces table (future expansion)

Observations stored as a single delimited string ("||") internally; split into List<string> at read time.

Quick Start

dotnet restore
dotnet build
func start --port 7071
curl http://localhost:7071/api/health

To read the graph, invoke the read_graph MCP tool from the client and supply the workspaceName parameter.

Directory Layout

flowchart TD
    A[CentralMemoryMcp.Functions]
    A --> P[Program.cs]
    A --> SR[ServiceRegistration.cs]
    A --> F[Functions]
    F --> GF[GraphFunctions.cs]
    F --> HF[HealthFunctions.cs]
    A --> S[Services]
    S --> KGS[KnowledgeGraphService.cs]
    A --> ST[Storage]
    ST --> TSS[TableStorageService.cs]
    A --> M[Models]
    M --> GM[GraphModels.cs]
    A --> CFG[appsettings.json]
    A --> HOST[host.json]

Usage Notes

  • Use workspaceName consistently; workspaceId in docs replaced.
  • Upsert preserves entity identity by lookup on (WorkspaceName + Name).
  • Relation upsert requires entity GUIDs or resolves names; fails if names missing.

Logging & Telemetry

Add Application Insights connection to capture request latency & storage dependency tracking (future enhancement).

Roadmap

Add search, pagination, stats aggregation, batch operations, duplicate detection, merge strategy, semantic vector layer.

License

MIT.

Frequently asked questions

What is Central Memory MCP?

Workspace-grounded knowledge graph shared by multiple developers, hosted on Azure Functions with Table storage.

How do I install Central Memory MCP?

Follow the installation steps in its documentation, shown on this page and in its repository.

Is Central Memory MCP open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains Central Memory MCP?

It is published by MWGMorningwood. AI.tn lists it but does not maintain or endorse it.

From the community awesome-mcp-servers lists and the project's GitHub repository. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.