Archive MCP Server
Archive MCP Server
Enterprise Data Archival & Records Management System のレコードと保持ロジックを、stdio を介してあらゆる MCP クライアント — Claude Code、Claude Desktop、Cursor、または独自のクライアント — に公開する MCP サーバーです。
React ダッシュボードをクリックして 「Finance で何をアーカイブできるか?」 に答える代わりに、モデルに質問すると、モデルがこれらのツールを呼び出します。
ツール
ツール | 説明 |
| 従業員、部署、または文書タイプでレコードを検索する |
| 保持判定付きでレコードを 1 件取得する |
| 保持期間を過ぎた有効レコードを、超過が大きい順に表示する |
| 部署ごとの有効/アーカイブ済みの件数 |
| 次にアーカイブ可能になるレコードの月別予測 |
| 定期アーカイブジョブが何を、いつ行ったか |
Related MCP server: EndpointRead-MCP
リソース
URI | 内容 |
| 文書タイプごとの保持期間(年) |
要件
Python 3.10+ と MCP SDK 2.x が必要です。v2 SDK は FastMCP を MCPServer に改名し、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 を参照):
| バックエンド |
未設定 |
|
設定済み | 実際のアーカイブデータベース。例: |
archive.db には合成レコードが入っているため、サーバー — および --selftest — は、認証情報なしでこのリポジトリをクローンした人なら誰でも実行できます。これは別のコードベースではありません。seed_db.py は、本番データベースが使用する同じ 5 テーブル構成のスキーマ(active_records、archived_records、retention_policy、audit_logs、documents)を構築するため、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-system が Connected と 6 つのツールを表示するはずです。その後、次のように質問します:
どの IT 部門のレコードがアーカイブ期限を過ぎていますか?
起動に失敗した場合は、claude --debug=mcp を実行し、~/.claude/debug/ のログを確認してください。
Claude Desktop への接続
claude_desktop_config.json に次を追加します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%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_recordsかarchived_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 ダンプではありません。 モデルが再フォーマットなしでそれをユーザーに引用して返せるようにするためです。
This server cannot be installed
Maintenance
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
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Read-only MCP access to authorized Vocci sessions, notes, files, and memory search.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Related MCP Servers
- AlicenseCqualityBmaintenanceA 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.100MIT
- AlicenseBqualityBmaintenanceA 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.361MIT
- AlicenseNot gradedqualityAmaintenanceProvides 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
- AlicenseAqualityBmaintenanceProvides governed retrieval over MCP with hybrid search, strict confidence gating, and access control, exposing three read-only tools.3Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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