mcpField
C
centerfield-visitor-mcp

centerfield-visitor-mcp

ローカル
github.com/hmkimビジネス・マーケティング05 週間前に更新

centerfield-visitor-mcp について

centerfield-visitor-mcp は、ソウルの Centerfield ビルの来訪者事前登録を自動化します。個別または一括の来訪者リストを扱うエージェント向けで、予約送信前のプレビューと検証に対応します。

主な機能

  1. 01テナントと承認担当者の設定確認
  2. 02来訪者情報のプレビューと検証
  3. 03個別または一括での来訪者登録
  4. 04貼り付けテキストや CSV・Excel ファイルの解析
  5. 05アンケートの参加形式による行の絞り込み

活用シーン

  1. 01貼り付けた参加者リストから予約を準備
  2. 02ファイルから来訪者情報を取り込み確認
  3. 03参加形式に合う来訪者だけを登録
  4. 04送信前に設定を確認しリストをプレビュー

MCP 対応

設定確認、来訪者のプレビュー、予約登録のツールを MCP クライアントに公開します。ローカルクライアントは stdio、リモートクライアントは streamable HTTP で接続できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"hmkim-centerfield-visitor": {
"command": "uvx",
"args": [
"centerfield-visitor-mcp"
],
"env": {
"CF_ENV_FILE": "<CF_ENV_FILE>",
"CF_COMPANY_NAME": "<CF_COMPANY_NAME>",
"CF_PERSON_IN_CHARGE_MOBILE": "<CF_PERSON_IN_CHARGE_MOBILE>",
"CF_DEFAULT_FLOOR": "<CF_DEFAULT_FLOOR>"
}
}
}
}
起動コマンドuvx centerfield-visitor-mcp
設定が必要な環境変数
CF_ENV_FILEAbsolute path to a .env holding CF_COMPANY_NAME and CF_PERSON_IN_CHARGE_MOBILE (optional if ~/.config/centerfield-visitor-mcp/.env exists)
CF_COMPANY_NAMETenant company name exactly as registered in Centerfield
CF_PERSON_IN_CHARGE_MOBILEシークレットMobile number of the approval contact registered in Centerfield
CF_DEFAULT_FLOORFloor used when a row omits it (12 or 18)

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

パッケージ
pypicenterfield-visitor-mcp0.2.1

ツール

6

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

このツールにパラメーターはありません。

詳細

Centerfield Visitor MCP

Centerfield ビルの来訪者予約(www.centerfield.co.kr)を自動化するMCP(Model Context Protocol)サーバーです。 MCP に対応したあらゆるエージェント(Kiro CLI / Kiro IDE / KiroCrew、Claude Code、Claude Desktop、 Codex CLI、Cursor、Strands Agents(ローカル stdio)、およびAmazon Quick やその他のリモートクライアント(streamable HTTP))から利用でき、 自然言語で来訪者を登録できます。個別の登録、貼り付けたテキスト、アンケートのエクスポートデータ、Excel/CSV ファイルに対応しています。

센터필드 빌딩 방문예약을 자동화하는 MCP 서버입니다. 로컬 에이전트(Kiro, Claude Code, Codex, Cursor …)는 stdio로, Amazon Quick 같은 원격 에이전트는 streamable HTTP로 같은 서버를 씁니다.

stdio サーバーは完全にローカルで実行されます。uvxがマシン上でサーバーをダウンロードして実行し、www.centerfield.co.krと直接通信します。ローカルエージェントではバックエンドサービスは不要です。

クイックスタート

mkdir -p ~/.config/centerfield-visitor-mcp
cp .env.example ~/.config/centerfield-visitor-mcp/.env   # fill CF_COMPANY_NAME, CF_PERSON_IN_CHARGE_MOBILE
uvx centerfield-visitor-mcp                               # stdio; every client below can launch this

~/.config/centerfield-visitor-mcp/.envは自動的に読み込まれるため、クライアントの設定にシークレットを含める必要はありません。

クライアントのセットアップ

クライアント方法詳細
Kiro CLI~/.kiro/settings/mcp.jsonclients/kiro/mcp.json
Kiro IDE.kiro/settings/mcp.json(ワークスペース)同じファイル
KiroCrewエージェント JSON の mcpServers + toolsclients/kirocrew/agent-snippet.json
Claude Codeclaude mcp add centerfield-visitor --scope user -- uvx centerfield-visitor-mcpclients/claude-code/
Claude Desktopclaude_desktop_config.jsonclients/claude-desktop/
Codex CLI~/.codex/config.toml [mcp_servers.centerfield-visitor]clients/codex/config.toml
Cursor.cursor/mcp.jsonclients/cursor/mcp.json
Strands AgentsMCPClient(stdio_client(...))clients/strands/example.py
Amazon Quickリモート streamable HTTP + OAuth 2LOclients/remote/README.md

エージェントスキル(Agent Skills 仕様。Claude Code / Kiro / KiroCrew で動作):SKILL.md — プロジェクトのスキル .claude/skills/centerfield-visitor/SKILL.md としても同梱されています。

ツール

ツール副作用備考
validate_configuration()なし会社、承認連絡先、フロア一覧を稼働中のサイトと照合します
preview_visitors_from_text(text, default_visit_date, default_visit_time, default_floor, default_purpose, participation)なし貼り付けた CSV/TSV を解析・検証します
register_visitor(..., dry_run)予約を作成しますdry_run=trueでは、送信せずに(入力とサイトを)検証します
register_visitors_from_text(text, defaults…, participation, dry_run)予約を作成します順次処理し、概要を 1 つの文字列で返します
preview_visitors_from_file(file_path, defaults…, participation)なしstdio のデプロイのみ(共有ファイルシステムが必要です)
register_visitors_from_file(file_path, defaults…, participation, dry_run)予約を作成しますstdio のデプロイのみ

推奨フロー:validate_configurationを一度実行 → preview_* → 人が確認 → register_*。 default_*引数は、通常、参加者一覧にない列(訪問日/時刻/フロア)を補完します。 participationを指定すると、出席区分の列に指定したテキストを含む行だけが対象になります(以下を参照)。

入力制約

フィールドルール
visit_timeHH:MM、30 分間隔、08:00~20:00(スプレッドシートの HH:MM:SS も許容)
visit_dateYYYY-MM-DD、今日以降
floor12 または 18。省略した場合は CF_DEFAULT_FLOOR(デフォルトは 12)
visit_purposemeeting(デフォルト)、visit_business、interview、tour、construction、others
visitor_mobile韓国の携帯電話番号。010-1234-5678、010 1234 5678、+82 10-1234-5678 は 01012345678 に正規化されます。空欄または携帯電話番号以外は拒否されます
visitor_email有効なメールアドレス
重複1 回のリクエスト内で携帯電話番号、日付、時刻が同じ行はスキップされ、報告されます

ファイル/テキスト形式

韓国語または英語のヘッダー行に対応します。アンケートのエクスポート用ヘッダーも認識されます (Full Name、Email、연락처(…)、소속/회사 (…))。認識されない列は無視されます。

이름,회사,전화번호,이메일,방문일,방문시간,층
홍길동,ABC주식회사,01012345678,[email protected],2026-11-15,10:00,12

日付列/時刻列がないリストの場合は、default_visit_date="2026-11-15"、default_visit_time="10:00" を指定します。

参加形態(アンケートのエクスポート):참석 형태/어떤 형태로 참석하시나요?/Participation などの列が検出され、プレビューに集計結果が表示されます(참석 형태 컬럼 감지: 온라인 7, 오프라인 3)。participation="오프라인" を指定すると、値にそのテキストを含む行のみを処理します(大文字・小文字と空白を区別しません。値が空の行は除外され、件数が記録されます)。フィルターを指定した入力に該当列がない場合、register_* は全員を登録するのではなく処理を拒否し、preview_* は警告とともにフィルターなしの行を表示します。

設定

変数説明デフォルト必須
CF_COMPANY_NAMECenterfield に登録されているテナント企業名(empty)✅
CF_PERSON_IN_CHARGE_MOBILECenterfield に登録されている承認担当者の携帯電話番号(empty)✅
CF_BUILDING / CF_BUILDING_KEYビルコード/表示キーeast / East
CF_DEFAULT_FLOOR行で省略された場合の階数(12 または 18)12
CF_TRANSPORTstdio または streamable-httpstdio
CF_HTTP_HOST / CF_HTTP_PORT / CF_HTTP_PATHHTTP のバインドアドレスとパス127.0.0.1 / 8000 / /mcp
CF_HTTP_STATELESS / CF_HTTP_JSON_RESPONSEStreamable HTTP モードtrue / true
CF_HTTP_ALLOWED_HOSTSDNS リバインディング対策のホスト許可リスト(host:* は任意のポート)。空欄の場合、ループバックにバインドすると組み込みの localhost リストが使用されます。それ以外のバインドでは保護が無効になり、警告がログに記録されます(empty)
CF_EXPOSE_FILE_TOOLSファイルツールを強制的に有効/無効にするstdio では有効、HTTP では無効
CF_CENTERFIELD_BASE_URLCenterfield のベース URLhttps://www.centerfield.co.kr
CF_REQUEST_TIMEOUTHTTP タイムアウト(秒)30
CF_BULK_MAX_VISITORS一括リクエストあたりの最大来訪者数(Amazon Quick の 60 秒制限には 10 を使用)200
CF_REQUEST_DELAY送信間の遅延(秒)0.5
CF_ENV_FILE読み込む追加の .env ファイル(unset)

.env の読み込み順(後の設定が前の設定を上書きします):~/.config/centerfield-visitor-mcp/.env → ./.env → $CF_ENV_FILE。プロセスの環境変数は常に優先されます。起動ログ(stderr)には読み込んだファイルと問題が記録されます。

CF_PERSON_IN_CHARGE_MOBILE には、テナントの承認担当者として登録されている携帯電話番号を指定する必要があります。 セットアップ後に validate_configuration を実行してください。予約を作成せずに、両方の値が有効かをオンラインで確認します。

リモートモード(Amazon Quick、ホスト型デプロイ)

CF_TRANSPORT=streamable-http CF_HTTP_HOST=0.0.0.0 uvx centerfield-visitor-mcp    # http://host:8000/mcp
docker build --platform linux/arm64 -t centerfield-visitor-mcp .                 # or the container image

AgentCore Runtime + Cognito の設定手順と Amazon Quick コネクターの手順については、clients/remote/README.md を参照してください。mcp SDK 1.x および 2.x で動作します。

開発とテスト

uv sync --group dev
uv run pytest                          # offline unit tests (mocked HTTP)
uv run --with "mcp<2" pytest           # same suite on mcp SDK 1.x
uv run python scripts/smoke_http.py    # streamable-http transport smoke test
uv run pytest -m live                  # read-only checks against the live site (needs a real .env)
CF_LIVE_REGISTER=1 CF_TEST_VISITOR_NAME=... CF_TEST_VISITOR_MOBILE=... CF_TEST_VISITOR_EMAIL=... uv run pytest -m live

最後のコマンドは実際の予約を 1 件作成します。Centerfield のモバイルアプリで予約を確認し、そこでキャンセルしてください(キャンセル API はありません)。

仕組み

サーバーは Centerfield サイトとの単一セッションを保持し、CSRF トークンを管理して、テナント企業と承認連絡先を検証し、フロアキーを解決してから、予約フォームを送信します。一括リクエストは、設定可能な遅延を挟んで順次処理されます。

MCP Registry

io.github.hmkim/centerfield-visitor-mcp として登録されています(server.json を参照)。

mcp-name: io.github.hmkim/centerfield-visitor-mcp

ライセンス

MIT

コメント

MCP は初めてですか?

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

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