mcpField
C
cacheport

cacheport

ローカル
github.com/CloudCorpRecordsデータベース02 週間前に更新

cacheport について

cacheportは、RESPを使ってTCP経由でRedisと通信する、キー・バリューキャッシュ用のCLI兼MCPサーバーです。簡潔なキャッシュ操作を必要とする開発者向けで、接続やサーバーのエラーを値として偽装せず返します。

主な機能

  1. 01キーによる文字列の保存と取得
  2. 02保存値の有効期限設定
  3. 03単一または複数キーの削除
  4. 04globパターンによるキー一覧
  5. 05RESPによるRedis通信

活用シーン

  1. 01有効期限付きキャッシュ値の保存
  2. 02キャッシュキーの読み取りや削除
  3. 03パターンによるRedisキーの確認

MCP 対応

stdio MCPサーバーとして、Redisのキー・バリュー操作を行うset、get、delete、listツールを提供します。操作時に設定されたRedisアドレスへ接続し、接続やサーバーのエラーを返します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-cacheport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/cacheport"
]
}
}
}
起動コマンドnpx -y @reneturcios/cacheport

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

パッケージ
npm@reneturcios/cacheport0.1.0
ocighcr.io/cloudcorprecords/cacheport:0.1.0

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
keystringはい設定する Redis キー
valuestringはいキーに保存する文字列値
expireSecondsnumberいいえ任意の有効期限(秒)。この時間が経過するとキーは期限切れになります。正の数である必要があります

詳細

cacheport

cacheport は Redis キャッシュ用の小さく、誠実なフロントエンドです。値をキーに保存し(有効期限は任意)、読み戻し、1 つまたは複数のキーを一度に削除し、グロブパターンに一致するキーを一覧表示します。役割はこれだけで、プレーンな TCP ソケット経由で Redis 独自のワイヤプロトコルである RESP を使って処理します。クライアントライブラリは同梱されておらず、サーバーからの実際の応答との間に何も介在しません。

Redis が利用できない場合、cacheport はそのことを通知します。MCP サーバーはバックエンドの Redis サーバーがなくても起動してツールを一覧表示します。ソケットに接続するのは実際の操作を行うときだけで、接続拒否やサーバーエラーは、作り出した値ではなくエラーとして返されます。

インストール

npx @reneturcios/cacheport get mykey

コンテナイメージを実行することもできます。

docker run -i ghcr.io/cloudcorprecords/cacheport

コンテナはデフォルトで MCP サーバーとして起動します(下記参照)。CLI として使うには、CLI 引数を渡してください。

CLI

# Store a value, with and without an expiry
cacheport set greeting "hello world"
cacheport set session abc123 --expire-seconds 3600

# Read it back (prints (nil) when the key is gone)
cacheport get greeting

# Delete one key, or several in one call; prints how many were removed
cacheport delete greeting
cacheport delete session old-session temp-key

# List keys; the pattern is a Redis glob and defaults to *
cacheport list
cacheport list "user:*"

# Start the MCP server (Redis URL optional, see below)
cacheport mcp redis://localhost:6379

cacheport --version

終了コード:成功時は 0、キャッシュまたは接続の失敗時は 1(どちらが失敗したかはエラーに表示されます)、使い方のエラー時は 2 です。

接続先には通常の Redis URL(redis:// または rediss://)を指定します。ホスト、任意のポート(デフォルトは 6379)、userinfo 内の任意のパスワード、パスとして任意のデータベースインデックス(/2 は db 2 を選択)を指定できます。コマンドと mcp のどちらも、代わりに環境変数から接続先を取得できます。優先順位は REDIS_URL、次に CACHEPORT_REDIS_URL、その次に個別の変数 REDIS_HOST/REDIS_PORT/REDIS_PASSWORD(またはそれぞれの CACHEPORT_ 形式)です。これらがどれも設定されていない場合、cacheport は localhost:6379 に接続します。

Redis との通信方法

各操作では接続を開き、コマンドをバルク文字列の RESP 配列として書き込み、応答をデコードします。SET はシンプル文字列、GET はバルク文字列(または nil)、DEL は整数、KEYS は配列として返されます。接続先にパスワードまたは 0 以外のデータベースインデックスが指定されている場合、同じ接続上で先に AUTH と SELECT を実行します。サーバーのエラー応答には、サーバー自身のメッセージが添えられて返されます。

set に指定した有効期限は EX <seconds> として送信されます。小数の秒数は切り捨てられ、0 以下の有効期限は、何も送信する前に拒否されます。

MCP サーバー

1 つのバイナリで両方の用途に対応します。mcp サブコマンドで stdio MCP サーバーを起動します。

npx -y @reneturcios/cacheport mcp redis://localhost:6379

MCP クライアントの設定:

{
  "mcpServers": {
    "cacheport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/cacheport", "mcp"],
      "env": { "REDIS_URL": "redis://localhost:6379" }
    }
  }
}
ツール
ツール入力戻り値
setkey(文字列、必須)、value(文字列、必須)、expireSeconds(数値、任意)サーバーのステータス応答。通常は OK です。
getkey(文字列、必須)保存された文字列。キーが存在しない場合は null です。
deletekey(文字列または文字列の配列、必須)実際に削除されたキーの数です。
listpattern(文字列、任意、デフォルトは *)グロブパターンに一致するキー名です。

接続エラーとサーバーエラーは、基となるメッセージを含むツールエラーとして返されます。作り出した値として返されることはありません。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network, no live Redis
npm run dev     # run the CLI from source via tsx

中核となるロジックは、注入可能なエグゼキューターインターフェースの背後にあります。テストスイートではこのインターフェースを使用して、RESP のエンコードとデコード、URL の解析、および 4 つすべての操作を、メモリ上のフェイクエグゼキューターに対してテストします。

ライセンス

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

コメント

MCP は初めてですか?

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

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