mcpField
M
Mcp Pager — Zero Config Response Paging For Mcp Servers (typescript + Python)

Mcp Pager — Zero Config Response Paging For Mcp Servers (typescript + Python)

ローカル
github.com/SatishKakollu開発ツール121 週間前に更新

Mcp Pager — Zero Config Response Paging For Mcp Servers (typescript + Python) について

mcp-pagerは、MCPサーバー開発者向けのTypeScript・Python用ミドルウェアです。大きなツール応答をトークン数に応じて分割し、後続ページの取得に使うメタデータを返します。

主な機能

  1. 01トークン数に応じた応答分割
  2. 02カーソルによるページ取得
  3. 03Redis共有ストレージバックエンド
  4. 04HMACカーソル署名のオプション
  5. 05ページングのライフサイクルコールバック

活用シーン

  1. 01LLMのコンテキスト上限を超えるツール結果の処理
  2. 02複数プロセスにまたがる大量結果のページ取得

MCP 対応

MCPサーバーをラップし、トークン上限を超えるツール応答を処理します。MCPクライアントは返されたカーソルとget_next_pageを使って後続データを取得できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pager": {
"command": "npx",
"args": [
"-y",
"tsx"
]
}
}
}
起動コマンドnpx -y tsx

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtsx

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-pager

MCP サーバー向けの、トークンを考慮したレスポンス管理です。

ツールが数千件のレコードを返す一方で、LLM にはトークン数の上限があります。mcp-pager はその間に入ります — サイズの大きすぎるツールのレスポンスをインターセプトし、トークン数に応じて分割して、エージェントが読み取れるメタデータとともに各ページを返すため、LLM は次に何を取得すればよいかを正確に把握できます。コードは1行。既存のサーバーを変更する必要はありません。


言語を選択

TypeScript / JavaScriptPython
インストールnpm install mcp-pagerpip install mcp-pager
ドキュメントTypeScript ガイド →Python ガイド →
レジストリnpmjs.com/package/mcp-pagerpypi.org/project/mcp-pager
MCP SDK@modelcontextprotocol/sdkmcp (FastMCP)

機能

Tool call  →  mcp-pager  →  Your MCP server
                 │
           token count ≤ limit?
           ├─ yes → return as-is
           └─ no  → chunk → store → return page 1 + metadata

get_next_page(cursor) → read from store → return next chunk + metadata

レスポンスが大きすぎる場合、LLM はそのまま実行できる構造化メタデータを受け取ります。

{
  "hasMore": true,
  "pageIndex": 0,
  "totalPages": 22,
  "remainingPages": 21,
  "nextCursor": "eyJpZCI6Ijkx...",
  "instruction": "Call `get_next_page` with nextCursor to get the next page. Repeat until hasMore is false."
}

主な機能

機能説明
設定不要サーバー全体を1行でラップします
バックエンド呼び出しは1回LLM が何ページ取得しても、API の呼び出しは1回です
スライディング TTLページを取得するたびにカーソルの有効期限がリセットされるため、長時間のセッションが途中でタイムアウトしません
Redis バックエンドマルチプロセス/サーバーレスのデプロイに対応した、本番環境向けの共有ストレージです
HMAC 署名マルチテナント環境向けに、オプションでカーソルに署名できます
オブザーバビリティ型付きのライフサイクルイベントを受け取る onPaginate / on_paginate コールバックです
エージェントが読み取れるメタデータ構造化 JSON により、LLM は次に何をすればよいかを正確に把握できます

ドキュメント

ドキュメント説明
TypeScript ガイドAPI、バックエンド、署名、オブザーバビリティの全容
Python ガイドAPI、FastMCP との統合、バックエンドの全容
LLM プロンプトガイドClaude、GPT-4o、Cursor 向けにテスト済みのシステムプロンプト
移行ガイド手動ページネーションから mcp-pager への移行
トークン削減量実例による導入前/導入後の数値
ロードマップv1.x で予定されている内容(スマートレスポンス処理)

ソース

mcp-pager/
├── src/              TypeScript source
├── docs/             Guides and documentation
├── python/
│   ├── mcp_pager/    Python source
│   └── README.md     Full Python documentation
└── examples/         Demo servers (TS + Python)

ライセンス

MIT — Satish Kakollu

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。