validate_configuration
센터필드 MCP 설정(입주사명, 승인 담당자, 층 목록)을 실제 사이트에 조회해 확인합니다. 예약을 생성하지 않습니다. Keywords: 센터필드 설정 확인, validate configuration, 담당자 확인, dry run, 연결 테스트
无需输入参数。

io.github.hmkim由 GitHub 账号 hmkim 发布v0.3.0更新于 Nov 11, 2026
Centerfield building (Seoul) visitor pre-registration: validate, preview and register visitors.
为首尔 Centerfield 大楼登记访客:校验租户配置、预览访客名单,并向网站提交预约。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
参照 仓库 中的启动说明。
An MCP (Model Context Protocol) server that automates
visitor reservations for the Centerfield building (www.centerfield.co.kr).
Use it from any MCP-compatible agent — Kiro CLI / Kiro IDE / KiroCrew, Claude Code, Claude Desktop,
Codex CLI, Cursor, Strands Agents (local stdio) and Amazon Quick or any remote client (streamable HTTP) —
to register visitors with natural language: single entries, pasted text, survey exports, or Excel/CSV files.
센터필드 빌딩 방문예약을 자동화하는 MCP 서버입니다. 로컬 에이전트(Kiro, Claude Code, Codex, Cursor …)는 stdio로, Amazon Quick 같은 원격 에이전트는 streamable HTTP로 같은 서버를 씁니다.
The stdio server runs entirely locally — uvx downloads and runs it on your machine, and it talks
directly to www.centerfield.co.kr. No backend service is required for local agents.
~/.config/centerfield-visitor-mcp/.env is read automatically, so client configs need no secrets.
Agent skill (Agent Skills spec, works in Claude Code / Kiro / KiroCrew): SKILL.md —
also shipped as the project skill .claude/skills/centerfield-visitor/SKILL.md.
register_* tools exist only while CF_EXPOSE_WRITE_TOOLS is true (default).
Recommended flow: validate_configuration once → preview_* → human confirms → register_*.
The default_* arguments fill columns that attendee lists usually lack (visit date/time/floor).
participation keeps only rows whose attendance-type column contains the given text (see below).
Previews mask mobile numbers and emails (010******78, h***@example.com); pass the original
values to register_*.
With CF_EXPOSE_WRITE_TOOLS=false the three register_* tools are not registered at all, so the
server is preview-only regardless of what a client sends.
Every visitor gets one status (ReservationResult.status; success is kept for compatibility
and is true only for SUCCEEDED):
Bulk calls stop at the first UNKNOWN. The summary always reads
총 N명 중 A명 성공, B명 실패, C명 결과 불명(UNKNOWN), D명 미제출(NOT_SUBMITTED);
BulkReservationOut carries succeeded, failed, unknown, not_submitted (they add up to total)
and stopped_on_unknown. failed now counts only definite failures (it used to be total - succeeded).
Logs record only the error class and HTTP status, never the site's response text or visitor data.
Header row in Korean or English; survey-export headers are recognized too
(Full Name, Email, 연락처(…), 소속/회사 (…)). Unknown columns are ignored.
Lists without date/time columns: pass default_visit_date="2026-11-15", default_visit_time="10:00".
Attendance type (survey exports): a column such as 참석 형태 / 어떤 형태로 참석하시나요? / Participation
is detected and summarised in the preview (참석 형태 컬럼 감지: 온라인 7, 오프라인 3). Pass
participation="오프라인" to process only rows whose value contains that text (case/space-insensitive; rows
with an empty value are dropped and counted). If a filter is requested but the input has no such column,
register_* refuses instead of registering everyone, and preview_* shows the unfiltered rows under a warning.
.env load order (later overrides earlier): ~/.config/centerfield-visitor-mcp/.env → ./.env → $CF_ENV_FILE;
process environment variables always win. Startup logs (stderr) list the files read and any problems.
CF_PERSON_IN_CHARGE_MOBILEmust be the mobile number registered as the tenant's approval contact. Runvalidate_configurationafter setup — it checks both values live without creating a reservation.
See clients/remote/README.md for the AgentCore Runtime + Cognito recipe and the
Amazon Quick connector steps. Works with mcp SDK 1.x and 2.x.
The last command creates one real reservation; confirm it in the Centerfield mobile app and cancel it there (there is no cancel API).
The server holds a single session against the Centerfield site, manages CSRF tokens, verifies the tenant company
and approval contact, resolves the floor key, then submits the reservation form. Bulk requests are processed
sequentially with a configurable delay and stop at the first UNKNOWN outcome.
register_* must present, so "a human approved exactly this list" is enforced by the agent skill and the
client's tool-approval prompt, not by the server. A token scheme was deliberately left out until a stateless
design is settled (the HTTP transport is stateless, so the token must be verifiable without server-side
storage, bound to the exact normalized input, short-lived, and replay-safe). Until then, keep per-call
approval on for register_* in your client (do not "always allow"), and use CF_EXPOSE_WRITE_TOOLS=false
for endpoints that should only preview.SUCCEEDED
means "the site answered success: true". Check the Centerfield app for the booking itself.Listed as io.github.hmkim/centerfield-visitor-mcp (see server.json).
mcp-name: io.github.hmkim/centerfield-visitor-mcp
来源:README.md,提交 c7d20dc
센터필드 MCP 설정(입주사명, 승인 담당자, 층 목록)을 실제 사이트에 조회해 확인합니다. 예약을 생성하지 않습니다. Keywords: 센터필드 설정 확인, validate configuration, 담당자 확인, dry run, 연결 테스트
无需输入参数。
텍스트(복사/붙여넣기)로 방문자 목록을 입력받아 등록 없이 파싱·검증 결과만 보여줍니다. 등록 전에 먼저 호출하세요. Keywords: 센터필드, 방문자 미리보기, 명단 확인, preview visitors, 텍스트 확인, 등록 전 확인
text必填default_floorparticipationdefault_purposedefault_visit_datedefault_visit_time센터필드 빌딩 방문자 1명을 예약 등록합니다. dry_run=true면 사이트 검증까지만 하고 제출하지 않습니다. 결과 status: SUCCEEDED(센터필드 success=true 응답) / FAILED(명시적 실패) / UNKNOWN(결과 불명, 재시도 금지) / NOT_SUBMITTED(미제출). Keywords: 센터필드, 방문자 등록, 방문 예약, 방문 신청, visitor registration, centerfield reservation, register visitor, book visitor
floordry_runvisit_date必填visit_time必填visitor_name必填visit_purposevisitor_email必填visitor_mobile必填visitor_company_name必填텍스트(복사/붙여넣기)로 방문자 목록을 입력받아 일괄 등록합니다. 날짜/시간 컬럼이 없는 참석자 명단은 default_visit_date/default_visit_time을 함께 지정하세요. dry_run=true면 제출하지 않습니다. 첫 결과 불명 행에서 중단합니다. 결과 status: SUCCEEDED(센터필드 success=true 응답) / FAILED(명시적 실패) / UNKNOWN(결과 불명, 재시도 금지) / NOT_SUBMITTED(미제출). Keywords: 센터필드, 방문자 등록, 텍스트 입력, 복사 붙여넣기, paste visitors, text registration, 일괄 등록, 방문자 목록
text必填dry_rundefault_floorparticipationdefault_purposedefault_visit_datedefault_visit_time파일(.xlsx/.csv/.tsv)의 방문자 목록을 미리 확인합니다 (실제 등록하지 않음). Keywords: 센터필드, 방문자 미리보기, 파일 확인, preview visitors, 명단 확인, 등록 전 확인
file_path必填default_floorparticipationdefault_purposedefault_visit_datedefault_visit_timeExcel/CSV/TSV 파일에서 방문자 목록을 읽어 일괄 등록합니다. 날짜/시간 컬럼이 없으면 default_visit_date/default_visit_time 지정. dry_run=true면 미제출. 첫 결과 불명 행에서 중단합니다. 결과 status: SUCCEEDED(센터필드 success=true 응답) / FAILED(명시적 실패) / UNKNOWN(결과 불명, 재시도 금지) / NOT_SUBMITTED(미제출). Keywords: 센터필드, 방문자 일괄 등록, 대량 등록, bulk registration, 엑셀 등록, CSV 등록, 파일로 등록, batch visitor, 방문자 명단
dry_runfile_path必填default_floorparticipationdefault_purposedefault_visit_datedefault_visit_time已满足适用检查项的 90%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
mkdir -p ~/.config/centerfield-visitor-mcpcp .env.example ~/.config/centerfield-visitor-mcp/.env # fill CF_COMPANY_NAME, CF_PERSON_IN_CHARGE_MOBILEuvx centerfield-visitor-mcp # stdio; every client below can launch this이름,회사,전화번호,이메일,방문일,방문시간,층홍길동,ABC주식회사,01012345678,[email protected],2026-11-15,10:00,12CF_TRANSPORT=streamable-http CF_HTTP_HOST=0.0.0.0 uvx centerfield-visitor-mcp # http://host:8000/mcpdocker build --platform linux/arm64 -t centerfield-visitor-mcp . # or the container imageuv sync --group devuv run pytest # offline unit tests (mocked HTTP)uv run --with "mcp<2" pytest # same suite on mcp SDK 1.xuv run python scripts/smoke_http.py # streamable-http transport smoke testuv 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