Skip to main content
Glama
soluai-spa

solucortex-mcp

Official

SoluCortex MCP

Model Context Protocol の公式サーバー、 SoluCortex 向け — AIエージェントのための生きた技術的メモリです。

MCP互換のエージェント(Claude Code、Claude Desktop、Cursor、Codex、Cline、…)をSoluCortexプロジェクトに接続すると、作業を始める前に重要となる決定、規約、リスク、アーキテクチャを想起し、完了時に学んだことを記憶できます。

ツール

ツール

機能

使用タイミング

solucortex_recall

タスクのための生きたコンテキストを構築(意味的類似性+重要度でランク付け)

タスクの開始時、コードに触れる前

solucortex_search

プロジェクトのメモリに対するアドホックな意味的検索

タスク中の具体的な質問

solucortex_remember

メモリを記録(approvedとして保存+認証済みエージェントとして追跡)

完了時、または関連する技術的決定時

solucortex_list_memories

意味的検索なしでメモリを一覧表示

簡単な確認 / 監査

Related MCP server: codemem

要件

  • SoluCortexアカウントとプロジェクトAPIキー(接頭辞 scx_)— SoluCortexダッシュボードから取得できます。

  • いずれか1つ: uv(推奨)、Python ≥ 3.10、またはDocker。

設定

stdioモード(デフォルト、ローカル)

サーバーは環境変数のみで設定されます:

変数

必須

説明

SOLUCORTEX_API_KEY

✅

プロジェクトAPIキー(scx_…)

SOLUCORTEX_PROJECT_ID

推奨

デフォルトのプロジェクトUUID(呼び出しごとに上書き可能)

SOLUCORTEX_URL

任意

APIベースURL。デフォルトは https://solucortex.ai

HTTPモード(リモート、マルチテナント)

MCP_TRANSPORT=http(または--http)を指定して実行すると、$PORT(デフォルト8080)でStreamable HTTPを提供します — https://mcp.solucortex.ai の背後にあるモードです。認証情報は各リクエストとともに送信され、環境変数は無視されます:

ヘッダー

必須

説明

Authorization: Bearer scx_…

✅

呼び出し元のプロジェクトAPIキー(ない場合は401)

X-Solucortex-Project

推奨

セッションのデフォルトプロジェクトUUID

GET /health(ローカルでは/healthz。Cloud Runのフロントエンドが/healthzをインターセプトします)は認証なしで応答します。MCPエンドポイントは/mcpで、ステートレスに動作し、リクエスト間・テナント間で何も共有しません。

APIキーは絶対にコミットしないでください。MCPクライアント設定のenvブロックまたはローカルの.env([.env.example](. env.example)を参照)に保管してください。

インストール

リモート(推奨 — インストール不要)

https://mcp.solucortex.ai/mcp でホストされているサーバーはStreamable HTTPに対応しており、キーは各リクエストとともに送信されます:

claude mcp add --transport http solucortex https://mcp.solucortex.ai/mcp \
  --header "Authorization: Bearer scx_xxx" \
  --header "X-Solucortex-Project: your-project-uuid"

または、リモートMCP対応のクライアント:

{
  "mcpServers": {
    "solucortex": {
      "type": "http",
      "url": "https://mcp.solucortex.ai/mcp",
      "headers": {
        "Authorization": "Bearer scx_xxx",
        "X-Solucortex-Project": "your-project-uuid"
      }
    }
  }
}

Claude Code(ローカル、stdio)

claude mcp add solucortex \
  -e SOLUCORTEX_API_KEY=scx_xxx \
  -e SOLUCORTEX_PROJECT_ID=your-project-uuid \
  -- uvx --from git+https://github.com/soluai-spa/solucortex-mcp solucortex-mcp

(PyPIに公開されたら: コマンドを uvx solucortex-mcp に置き換えてください。)

Claude Desktop / Cursor / Cline(JSON設定)

クライアントのMCP設定(claude_desktop_config.json、Cursorのmcp.jsonなど)に追加します:

{
  "mcpServers": {
    "solucortex": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/soluai-spa/solucortex-mcp", "solucortex-mcp"],
      "env": {
        "SOLUCORTEX_API_KEY": "scx_xxx",
        "SOLUCORTEX_PROJECT_ID": "your-project-uuid"
      }
    }
  }
}

ローカルクローンから

git clone https://github.com/soluai-spa/solucortex-mcp
cd solucortex-mcp
cp .env.example .env   # fill in your key
./run.sh               # loads .env, then runs via uv
# or, with SOLUCORTEX_* already exported: uv run solucortex-mcp

Docker

docker build -t solucortex-mcp .
docker run --rm -i \
  -e SOLUCORTEX_API_KEY=scx_xxx \
  -e SOLUCORTEX_PROJECT_ID=your-project-uuid \
  solucortex-mcp

サーバーはstdio経由でMCP通信を行うため、クライアントはサブプロセスとして起動します(-iは標準入力を開いたままにします)。

開発

uv sync
uv run solucortex-mcp            # run (stdio)
MCP_TRANSPORT=http uv run solucortex-mcp   # run (HTTP on :8080)
uv run pytest                    # test suite
npx @modelcontextprotocol/inspector uv run solucortex-mcp   # interactive test

注意事項

  • メモリのtype語彙: 正規のセットは architecture, decision, risk, convention, bug_history, tech_debt, sensitive_module, learning, external_integration です。一部のバックエンドは古いセット(technical_decision, historical_bug, current_state, task_closure)を受け付けます。サーバーはtypeをそのまま渡してHTTP 422を返すため、もう一方のセットで再試行できます。

  • 実際のシークレットをメモリに保存しないでください。代わりに、場所、種類、重大度、実施した対応を記録してください。

ライセンス

MIT — LICENSEを参照してください。

Available Tools

4 tools
solucortex_list_memoriesA
Read-only
Inspect

List the project's memories without semantic search (GET /memories).

Useful for quick inspection/audit or to confirm a just-created memory was stored. Does not consume OpenAI quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax memories to return.
project_idNoProject UUID. If omitted, the session default applies, else the backend infers it from the API key.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds value beyond that by disclosing 'Does not consume OpenAI quota' and clarifying the GET operation has no semantic processing. No contradiction with annotations, and the extra cost/behavioral detail is genuinely useful for agent decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each earning its place: the core action, the best use cases, and a cost-relevant detail. Information is front-loaded and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with two optional parameters and an existing output schema, the description covers purpose, usage scenarios, and a notable behavioral trait (no quota consumption). Nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (limit, project_id) are fully documented in the schema with defaults and constraints. The description does not add parameter-level details, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List the project's memories' and explicitly notes the non-semantic nature with 'without semantic search (GET /memories)' and gives concrete use cases. This differentiates it from the semantic-search siblings (solucortex_search, solucortex_recall) without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit use contexts: 'quick inspection/audit' and 'confirm a just-created memory was stored'. It also implies that semantic search is NOT this tool's function, steering agents toward siblings for that need. It does not name the sibling tools explicitly, so there is a small gap, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solucortex_recallA
Read-only
Inspect

Build living context for a task (POST /context/build).

Call this at the START of a task, before touching code: returns approved, active memories (decisions, conventions, risks, sensitive modules, architecture) ranked by semantic similarity + importance. Uses OpenAI embeddings (slower, 20 req/min).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesDescribe the current task/module in natural language, e.g. 'implement API key rotation in the secrets module'. Used to semantically retrieve the most relevant memories.
project_idNoProject UUID. If omitted, the session default applies, else the backend infers it from the API key.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and openWorldHint annotations, the description adds valuable behavioral detail: it returns only approved/active memories, ranks by semantic similarity plus importance, and warns about OpenAI embeddings being slower with a 20 req/min limit. This gives the agent important expectations about latency and throttling without needing to discover it at runtime.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: one sentence states the action and endpoint, one sentence gives usage timing and return value, and one sentence notes performance characteristics. Every sentence adds meaningful information and the most important usage guidance is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, annotations, and presence of an output schema, the description covers the essential operating context: when to call it, what it returns, how results are ranked, and its performance constraints. No critical missing information prevents an agent from selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents both parameters (query and project_id) with clear descriptions, so the schema coverage is 100%. The tool description adds no extra parameter-level meaning beyond what the schema provides, which matches the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific action ('Build living context for a task') and an endpoint ('POST /context/build'), and explains it returns approved, active memories ranked by similarity and importance. This is not a tautology and conveys the tool's read-oriented purpose, though it does not explicitly compare itself to sibling tools like solucortex_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear timing directive: 'Call this at the START of a task, before touching code.' It establishes the intended context of use effectively, but it does not provide explicit exclusion criteria or name alternatives for cases where this tool would not be appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solucortex_rememberAInspect

Record a memory in SoluCortex (POST /memories).

Call when closing a task or making a relevant technical decision. As an authorized agent (Bearer api_key), the memory is stored with status 'approved' and traced. Never store real secrets: if you find one, record location/type/severity and action taken, with a redacted reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesMemory type. The backend validates the value. Canonical vocabulary: architecture, decision, risk, convention, bug_history, tech_debt, sensitive_module, learning, external_integration. (Older backends may use technical_decision, historical_bug, current_state, task_closure.) On HTTP 422, retry with the alternate vocabulary.
titleYesShort, clear title (~80 chars max).
contentYesFull content: what to remember, why it matters, where it applies and what it prevents. NEVER include real secrets (tokens, passwords, .env, credentials).
importanceNoPriority 1-10. Default 5. 6-7 high; 8-9 important decision/risk/convention; 10 critical.
project_idNoProject UUID. If omitted, the session default applies, else the backend infers it from the API key.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given annotations already indicate this is a non-read, non-destructive, non-idempotent operation, the description adds valuable behavioral context: the memory is stored with status 'approved' and is traced, and a bearer API key is required. It also discloses the safe-handling policy for secrets, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four concise sentences with no filler. The core action is front-loaded, followed by when-to-use, behavioral context, and the security caveat. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a memory-creation tool: it covers action, trigger conditions, authentication, post-condition (approved/traced), and secret-handling policy. With an output schema present and comprehensive parameter schemas, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by explaining how to handle sensitive content in the `content` parameter: record location/type/severity and action taken with a redacted reference. This is practical guidance beyond the schema's 'NEVER include real secrets' note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Record a memory in SoluCortex (POST /memories)'. It clearly distinguishes this write operation from its siblings (list, recall, search) by naming the creation endpoint and memory domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call the tool: 'Call when closing a task or making a relevant technical decision.' It does not mention exclusions or alternatives, but the sibling tools are clearly different operations, so the primary usage context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • Changedsolucortex_list_memories1 field changed
      • changedInput schema / properties / project_id / description
        Previous value: -"Project UUID. If omitted, uses SOLUCORTEX_PROJECT_ID."New value: +"Project UUID. If omitted, the session default applies, else the backend infers it from the API key."
    • Changedsolucortex_recall1 field changed
      • changedInput schema / properties / project_id / description
        Previous value: -"Project UUID. If omitted, uses SOLUCORTEX_PROJECT_ID."New value: +"Project UUID. If omitted, the session default applies, else the backend infers it from the API key."
    • Changedsolucortex_remember1 field changed
      • changedInput schema / properties / project_id / description
        Previous value: -"Project UUID. If omitted, uses SOLUCORTEX_PROJECT_ID."New value: +"Project UUID. If omitted, the session default applies, else the backend infers it from the API key."
    • Changedsolucortex_search1 field changed
      • changedInput schema / properties / project_id / description
        Previous value: -"Project UUID. If omitted, uses SOLUCORTEX_PROJECT_ID."New value: +"Project UUID. If omitted, the session default applies, else the backend infers it from the API key."
  2. 4 tool updatesv0.1.0
    • First observedsolucortex_list_memories
    • First observedsolucortex_recall
    • First observedsolucortex_remember
    • First observedsolucortex_search

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

Mostly distinct: recall and search both perform semantic retrieval, but their use cases are clearly separated (start-of-task context building vs. ad-hoc queries). list_memories and remember are unambiguously different. The overlap is minor and well-documented.

Naming Consistency4/5

All tools share the solucortex_ prefix and use lowercase snake_case, but the naming convention is mixed: recall, search, and remember are single verbs, while list_memories includes an object. Consistent enough to be predictable.

Tool Count5/5

Four tools cover the core memory interactions (list, recall, search, record) without unnecessary bloat. The count is well-scoped for a memory-oriented MCP server.

Completeness3/5

The set provides create and multiple read/search paths, but lacks update/delete or memory-status management. This creates a moderate lifecycle gap, though the primary agent workflows (build context, ask questions, record decisions) are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides coding agents with governed semantic memory and code-graph context via MCP, enabling code-linked recall, blast-radius impact analysis, and lifecycle-aware memory management.
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides persistent, searchable memory across coding projects and machines, letting agents record and retrieve projects, reusable assets, sessions, decisions, commits, and handoffs via MCP.
    2
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI coding agents and IDEs to capture conversations, extract structured knowledge into a queryable graph database, and recall past decisions, patterns, files, and errors across all projects and workspaces. Provides persistent memory tools for saving, searching, and cleaning up knowledge via MCP.
    2
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI coding agents with deterministic, attestable org memory via an MCP server, enabling automatic recall of relevant facts on every prompt, loss-proof capture of learnings, and curated promotion of verified facts to a tenant-isolated memory store.
    Apache 2.0