Skip to main content
Glama
Surajp1602

Archive MCP Server

by Surajp1602

Archive MCP Server

Enterprise Data Archival & Records Management System のレコードと保持ロジックを、stdio を介してあらゆる MCP クライアント — Claude Code、Claude Desktop、Cursor、または独自のクライアント — に公開する MCP サーバーです。

React ダッシュボードをクリックして 「Finance で何をアーカイブできるか?」 に答える代わりに、モデルに質問すると、モデルがこれらのツールを呼び出します。

ツール

ツール

説明

search_records

従業員、部署、または文書タイプでレコードを検索する

get_record

保持判定付きでレコードを 1 件取得する

archival_candidates

保持期間を過ぎた有効レコードを、超過が大きい順に表示する

department_summary

部署ごとの有効/アーカイブ済みの件数

retention_forecast

次にアーカイブ可能になるレコードの月別予測

audit_history

定期アーカイブジョブが何を、いつ行ったか

Related MCP server: EndpointRead-MCP

リソース

URI

内容

policy://retention

文書タイプごとの保持期間(年)

要件

Python 3.10+ と MCP SDK 2.x が必要です。v2 SDK は FastMCPMCPServer に改名し、mcp.server.mcpserver に移動しました。このコードは v2 を対象としています。データアクセスは SQLAlchemy 2.x で、PostgreSQL には psycopg2 を使用します。

セットアップ

python -m venv .venv
source .venv/bin/activate          # macOS/Linux
.venv\Scripts\activate             # Windows

python -m pip install -r requirements.txt
python seed_db.py                  # builds the local demo database
python server.py --selftest        # sanity check, no MCP client needed

次に、実際の MCP セッションで確認します:

python verify_mcp.py

データベースの選択

サーバーは DATABASE_URL を読み取ります(環境変数、または .env ファイルから — .env.example を参照):

DATABASE_URL

バックエンド

未設定

sqlite:///archive.dbseed_db.py が構築するローカルデモデータベース)

設定済み

実際のアーカイブデータベース。例:postgresql://user:pw@host/db?sslmode=require

archive.db には合成レコードが入っているため、サーバー — および --selftest — は、認証情報なしでこのリポジトリをクローンした人なら誰でも実行できます。これは別のコードベースではありません。seed_db.py は、本番データベースが使用する同じ 5 テーブル構成のスキーマactive_recordsarchived_recordsretention_policyaudit_logsdocuments)を構築するため、server.py 内のすべてのクエリはどちらのデータベースに対しても変更なしで動作します。

実際の DATABASE_URL をコミットしないでください。 .env は gitignore されており、.env.example がコミット対象のテンプレートです。

Claude Code への接続

プロジェクトディレクトリから:

claude mcp add --scope project archive-system -- /absolute/path/to/.venv/bin/python /absolute/path/to/server.py
claude mcp list

--scope project は、コミット可能な .mcp.json をプロジェクトルートに書き込むため、リポジトリをクローンした人なら誰でもサーバーを利用できます。claude を起動し、プロンプトが表示されたらプロジェクトサーバーを承認し、/mcp を確認してください — archive-systemConnected と 6 つのツールを表示するはずです。その後、次のように質問します:

どの IT 部門のレコードがアーカイブ期限を過ぎていますか?

起動に失敗した場合は、claude --debug=mcp を実行し、~/.claude/debug/ のログを確認してください。

Claude Desktop への接続

claude_desktop_config.json に次を追加します:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "archive-system": {
      "command": "D:\\Python\\project\\archive-mcp\\.venv\\Scripts\\python.exe",
      "args": ["D:\\Python\\project\\archive-mcp\\server.py"]
    }
  }
}

command は、素の python ではなく venv の Python を指すようにしてください — ホストはシェルの PATH やアクティベートした仮想環境を継承しないためです。Windows では両方のパスに二重のバックスラッシュが必要です。

トレイアイコンから再起動します — ウィンドウの閉じるボタンではなく Quit です — そうしないと、アプリは古い設定のまま動き続けます。

Windows の Microsoft Store(MSIX)ビルドに関する注意:その設定は %APPDATA% ではなく、パッケージ独自のディレクトリ %LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Roaming\Claude\ にあります。ローカル stdio サーバーを通常どおり起動します。logs\mcp.log でそれを確認しようとしないでください — そのファイルは、すべてが正常に動作している間も空のまま触られずにいることがあります。代わりにプロセスを確認してください。サーバーは Claude Desktop の子プロセスとして実行されます:

Get-CimInstance Win32_Process -Filter "Name like '%python%'" |
  Where-Object { $_.CommandLine -like "*archive-mcp*" }

設計ノート

  • stdio トランスポート — クライアントが同一マシン上でサーバーをサブプロセスとして起動するためです。サーバーがリモートで動き、複数のクライアントにサービスを提供するのであれば、HTTP トランスポートが理に適います。

  • ストレージの継ぎ目は 1 か所。 _connect() は SQLAlchemy の Engine を返し、データベースが何であるかを知っている唯一の場所です。クエリは名前付きバインドパラメータ(:department)を使用します。これはダイアレクト非依存なので、SQLite と PostgreSQL は 2 つではなく 1 つのクエリセットを共有します。

  • pool_pre_ping=True — サーバーレス PostgreSQL(Neon など)はアイドル中のコンピュートをサスペンドし、MCP サーバーは質問と質問の間アイドル状態になるためです。これがないと、静かな期間の後の最初の質問が、古いプール接続で失敗します。

  • 適格性は SQL ではなく Python で計算します。 PostgreSQL の INTERVAL 演算には SQLite に相当するものがなく、比較を 1 か所に保つことで 2 つのバックエンドの一貫性が保たれます。有効行が数千件程度であれば、このコストを最適化して除去する価値はありません。

  • 経過期間は joining_date から測定します。 created_at は一括ロードのタイムスタンプで全行で同一のため、そこから保持期間を計算しても、適格なものは決して見つかりません。joining_date は文書日付の代わりとなる従業員レベルの日付です — スキーマには文書日付がなく、これは上流で埋める価値のある実際のギャップです。

  • アーカイブ状態はフラグではなくテーブルです。 レコードは active_recordsarchived_records のいずれかに存在し、ID は移動をまたいで安定しているため、get_record は両方を確認します。status カラムは雇用ステータスであり、無関係です。

  • ツールは読み取り専用として注釈付けされています。 各ツールは ToolAnnotations(read_only_hint=True, destructive_hint=False) を持つため、クライアントは実行前に安全な呼び出しと状態を変更する呼び出しを区別できます。

  • ツールは実際にも読み取り専用です。 アーカイブは破壊的であり、ポリシーによって統制されています。archival_candidates は、アーカイブできるものを意図的に報告し、判断は既存のスケジュールジョブに委ねます。破壊的なツールをモデルに公開するのは、まず確認経路が必要な選択です。

  • ドクストリングが API です。 モデルはドクストリングと型ヒントからツールを選ぶため、有効な部署と文書タイプはそこに列挙されています。古い enum はないよりも悪いです。モデルが Legal のようなもっともらしい値を渡し、空の結果を受け取り、アーカイブするものは何もないと報告するからです。

  • 「適格」の定義は 1 つで、双方向に使用します。 _verdict は、レコードが保持期間に対してどれだけ経過したかを評価し、_eligible_on はそれを逆にして、レコードがその期間を超える日付を返します。retention_forecast は、その日付でバケットに分類します。この 2 つは正確に一致する必要があります。そうでないと、同じ日にレコードがフォーキャストでは 予定 と表示され、archival_candidates では 期限超過 と表示される可能性があります。逆を自明な方法で書くと(joining + timedelta(days=years * 365.25))、date + timedelta は整数日のみを保持し、.75 を黙って切り捨てるため、これが壊れます。

  • 出力は整形されたテキストであり、生の JSON ダンプではありません。 モデルが再フォーマットなしでそれをユーザーに引用して返せるようにするためです。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

0Releases (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 Connectors

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    A local MCP server for the LimaCharlie security platform that provides investigation, administration, and content-review workflows via a broad read-only tool surface with explicit organization scoping and audit logging.
    100
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    A read-only MCP server for Microsoft Intune and Entra ID that enables list, get, search, and reporting operations for tenant visibility, audits, troubleshooting, and health reporting without write actions. It includes authentication helpers, report exports, and metadata discovery tools.
    36
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides read-only MCP tools for market snapshots, position risk, order reconciliation, and daily report previews with deterministic financial calculations, evidence chains, and audit trails.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides governed retrieval over MCP with hybrid search, strict confidence gating, and access control, exposing three read-only tools.
    3
    Apache 2.0

View all related MCP servers

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/Surajp1602/archive-mcp'

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