Skip to main content
Glama

L-Dopa

AIエージェントが立ち直り、集中力を取り戻し、仕事をやり遂げるためのMCPサーバー。

L-Dopaは私を直してくれたんだ、間違いない??

L-Dopaは、アプローチが失敗しつつあるとき、コンテキストが散乱しているとき、またはリトライがループになりつつあるときに、エージェントの回復を支援する、小規模で実運用を意識したModel Context Protocol (MCP)サーバーです。コマンドの実行、外部システムの変更、エージェントの判断の置き換えは行いません。 提供された証拠を分析し、範囲を限定した回復状態を保持し、より安全な次の一手を提案します。

名前は冗談です。回復ループは冗談ではありません。

できること

L-Dopa v0.1は、エージェントが障害を診断し、範囲を縮小し、関連するコンテキストを復元し、リトライを意図的に管理できるようにする6つのMCPツールを提供します。

ツール

使用場面

戻り値

diagnose

操作が失敗し、エージェントがエラーまたはログの抜粋を持っている場合。

推定原因、調整された信頼度、秘匿化された証拠、次のアクション、リトライの指針。

stimulate

エージェントが有用な観察をせずに堂々巡りしている場合。

仮定と最小限の安全なチェックに焦点を当てた簡潔なリセット。

focus

タスクが広すぎる、または絡み合っている場合。

1〜5件の具体的な次のアクションの優先順位付きリスト。デフォルトは3件。

reuptake

エージェントがL-Dopaセッションから関連する回復コンテキストを必要としている場合。

最近の失敗、試行、成功、事実、未解決の問題の簡潔な要約。

retry

エージェントがリトライを検討している、または報告している場合。

記録された範囲限定のリトライ、または代替戦略の推奨を伴うブロック。

fix_me

エージェントが行き詰まり、1つの簡潔な回復手順を必要としている場合。

診断、焦点を絞ったアクション、回復の後押し、リトライの指針。

Related MCP server: nautilus-compass

設計原則

原則

v0.1での実装

魔法のような確実性はない

診断の信頼度はlowmediumhighのいずれか。弱い証拠は弱いまま。

盲目的なループはしない

実質的に類似した失敗の繰り返し、変更されていないリトライ提案、操作ごとのリトライ上限は、それ以上のリトライをブロックする。

制限付きメモリ

JSONベースの状態は、セッションごとにカテゴリごとに設定された数のレコードのみを保持する。

デフォルトで安全

L-Dopaは診断と計画のみを提供する。シェルコマンドや外部アクションを実行することは決してない。

認証情報を認識した出力

一般的なトークン、認証ヘッダー、パスワード、APIキー、JWT、AWSキー、GitHubトークンのパターンは、状態、ログ、ツール出力の前に秘匿化される。

シンプルなデプロイ

サーバーは標準のMCP stdioトランスポートを使用し、Node.js 18以降が必要。

インストール

リポジトリをクローンして依存関係をインストールします:

git clone https://github.com/mshanghai570/L-Dopa.git
cd L-Dopa
npm install
npm run build

stdioサーバーを手動で起動するには:

npm start

npm startは意図的に入力待ちのように見えます。MCPサーバーは標準入力と標準出力を介してJSON-RPCで通信するため、通常はMCPクライアントが起動してくれます。

MCPクライアントを接続する

まずL-Dopaをビルドし、その実行可能なエントリポイントを使用します。以下の一般的なMCP設定は、ローカルのstdioサーバーをサポートするクライアントと互換性があります:

{
  "mcpServers": {
    "l-dopa": {
      "command": "node",
      "args": ["/absolute/path/to/L-Dopa/dist/index.js"],
      "env": {
        "LDOPA_STATE_FILE": "/absolute/path/to/l-dopa-state.json",
        "LDOPA_MAX_HISTORY": "50",
        "LDOPA_RETRY_LIMIT": "3",
        "LDOPA_LOG_LEVEL": "info"
      }
    }
  }
}

インストール済みパッケージの場合、クライアント環境によってはコマンドがl-dopaになることもあります。標準出力はMCPプロトコルメッセージ用に予約しておいてください。L-Dopaは独自の簡潔な構造化運用ログを標準エラー出力に書き込みます。

設定

L-Dopaは安全なデフォルトで動作し、JSONファイルおよび/または環境変数で設定できます。提供されている例をコピーして開始してください:

cp l-dopa.config.example.json l-dopa.config.json
LDOPA_CONFIG=./l-dopa.config.json npm start

環境変数はファイルの値を上書きします。

設定

JSONプロパティ

環境変数

デフォルト

意味

状態パス

stateFile

LDOPA_STATE_FILE

~/.l-dopa/state.json

制限付きJSONセッションストアの場所。

履歴上限

maxHistory

LDOPA_MAX_HISTORY

50

セッション内の各カテゴリで保持されるレコードの正の最大数。

リトライ上限

retryLimit

LDOPA_RETRY_LIMIT

3

新しいリトライがブロックされるまでに操作に対して保持される計画済み/報告済みリトライの正の最大数。

ログレベル

logLevel

LDOPA_LOG_LEVEL

info

debuginfowarnerrorのいずれか。

設定ファイル

LDOPA_CONFIG

JSON設定ファイルへのオプションのパス。

設定にはプロバイダーの認証情報設定は含まれません。このバージョンはモデルやプロバイダーへの呼び出しを行わないためです。将来の拡張で認証情報が必要になった場合は、環境変数で渡してください。リポジトリ、設定ファイル、回復プロンプトに追加しないでください。

ツールリファレンス

すべてのテキスト引数は、L-Dopaが永続化または返却する前に上限が設定され、認証情報が秘匿化されます。sessionIdはデフォルトで"default"ですが、エージェントはタスクまたは会話ごとに安定したIDを使用して、無関係な回復履歴が混ざらないようにする必要があります。

diagnose

失敗後、利用可能な限り多くの有用なコンテキストとともにdiagnoseを使用します。errorMessagerecentOperationlogsattemptedSolutionexpectedResultactualResultはオプションですが、正確なエラーまたは実際の結果があると、応答がより有用になります。

{
  "sessionId": "deploy-2026-08-27",
  "recentOperation": "Deploy version 0.1.0",
  "errorMessage": "429 Too Many Requests",
  "attemptedSolution": "Immediately retried the deployment",
  "expectedResult": "Deployment accepted",
  "actualResult": "The API rejected the request"
}

応答にはlikelyCauseconfidenceevidencerecommendedNextActionsretryAppropriatetryDifferentStrategy、およびredactedインジケータが含まれます。検出は、誤って権威的になるのではなく、意図的にヒューリスティックです。

stimulate

エージェントが説明をやめて学習を始める必要がある場合はstimulateを使用します。必須のtaskと、任意で情報量の多いcontextを指定します。

{
  "sessionId": "deploy-2026-08-27",
  "task": "Repair the deployment",
  "context": "The health check timed out twice after a successful build"
}

回復戦略は、最小限で検証可能なアクションを重視し、変更のないループに対して警告します。

focus

広すぎるタスクを意図的に短い一連のアクションに変えるにはfocusを使用します。maxStepsはオプションで、1〜5の範囲です。デフォルトは3です。

{
  "sessionId": "deploy-2026-08-27",
  "task": "Repair the deployment and verify availability",
  "context": "Health checks time out",
  "maxSteps": 3
}

reuptake

トランスクリプト全体をダンプせずに関連するセッションコンテキストが必要な場合はreuptakeを使用します。limitはデフォルトで5、上限は20です。

{
  "sessionId": "deploy-2026-08-27",
  "limit": 5
}

現在のタスク、回復ステータス、最近の失敗、試行された解決策、成功したアプローチ、発見された事実、未解決の問題、リトライ回数が返されます。v0.1のツールは、専用の事実記録ツールをまだ公開していません。discoveredFactsは拡張用に予約されており、コンパクトなスキーマに引き続き存在します。

retry

明示的なリトライレコードを作成したり、その結果を報告するにはretryを使用します。proposedChangeは何が異なるかを示す必要があります。L-Dopaは計画済み、成功、失敗のレコードを許可しますが、リトライ自体を実行することは決してありません。

{
  "sessionId": "deploy-2026-08-27",
  "operation": "Deploy version 0.1.0",
  "previousFailure": "429 Too Many Requests",
  "proposedChange": "Wait for Retry-After and submit only one request",
  "result": "planned"
}

L-Dopaは、設定された操作上限に達した場合、同じ失敗が再発した場合、または既存のリトライが変更なしで繰り返された場合、リトライをブロックします。ブロック応答は、適切にスコープされたサブタスクと収集された証拠を別の有能なエージェントに引き渡すことを含む、範囲限定の代替パスを推奨します。

fix_me

diagnose → focus → stimulate → retry guidanceの短縮版にはfix_meを使用します。指定された失敗があればそれを記録してから計画を返します。実行はしません。

{
  "sessionId": "publish-0.1.0",
  "task": "Publish the package safely",
  "recentOperation": "npm publish",
  "errorMessage": "401 Unauthorized",
  "attemptedSolution": "Re-ran the same command"
}

状態とプライバシー

状態ストアは、モード0600で原子的に書き込まれるプレーンなJSONファイルです。バージョン管理された形状を持ち、sessionIdでキー付けされた個別のセッションを保存します。各セッション内で、失敗レコード、リトライレコード、試行された解決策、成功したアプローチ、発見された事実はmaxHistoryに切り詰められます。

状態は意図的に軽量であり、長期的なメモリシステムではありません。実行中ユーザーのマシンにローカルに存在し、L-Dopaによって送信されることはありません。回復履歴をクリアする必要があるときはいつでも、設定された状態ファイルを確認または削除してください。

重要: 秘匿化はいくつかの一般的な認証情報パターンをカバーしますが、これは防御的な便宜であり、秘密情報を送信するための許可ではありません。診断入力にパスワード、トークン、秘密鍵、完全な認証ヘッダーを意図的に配置しないでください。

開発

npm install
npm run build
npm test

このプロジェクトは意図的にモジュール化されています:

src/
  config.ts       Configuration loading and validation
  index.ts        Executable stdio MCP entry point
  logger.ts       Structured, redacted standard-error logging
  redaction.ts    Credential-detection and output redaction
  recovery.ts     Diagnostic, focus, stimulation, and plan logic
  server.ts       MCP server and tool registrations
  state.ts        Bounded, atomic JSON session storage
  types.ts        Shared contracts
tests/
  l-dopa.test.ts  End-to-end MCP and state behavior tests

テストカバレッジ

自動テストスイートは、SDKのインメモリトランスポートを介して実際のMCPクライアントとサーバーを接続します。サーバー初期化、MCPツールの発見、すべてのツール、状態の永続化、制限付き保持、リトライ上限、変更されていないリトライ、繰り返し失敗の検出、認証情報の秘匿化をカバーしています。

実行するには:

npm test

制限事項とロードマップ

L-Dopa v0.1は決定論的ヒューリスティックを使用するため、一般的な失敗クラスを認識しますが、全知のデバッガーではありません。ベクターストア、リモート永続化、モデルプロバイダー統合、コマンド実行機能は意図的にありません。エージェントの隠れた思考の連鎖を検査せず、提供された運用コンテキストのみを処理します。

将来の追加はこれらの境界を維持する必要があります: 明確な回復利点を提供する場合にのみツールを追加し、コマンド実行を別の権限制御コンポーネントに保持し、状態を制限付きで検査可能に保ちます。

ライセンス

MIT

A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables LLM-driven agents to autonomously detect, diagnose, repair, verify, and prevent software and hardware failures on local and remote systems. Includes built-in safety checks and automatic rollbacks.
    15

View all related MCP servers

Related MCP Connectors

  • Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.

  • Persistent memory and drift detection for AI agents across session restarts.

  • Collective memory for AI agents. One agent solves a bug — every agent gets the fix instantly.

View all MCP Connectors

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/mshanghai570/L-Dopa'

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