Centerfield Visitor MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Centerfield Visitor MCPRegister visitor Jane Smith from XYZ Corp on March 15 at 9am"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Centerfield Visitor MCP
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.
Quick start
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 is read automatically, so client configs need no secrets.
Related MCP server: Coordinalo MCP Server
Client setup
Client | How | Details |
Kiro CLI |
| |
Kiro IDE |
| same file |
KiroCrew | agent JSON | |
Claude Code |
| |
Claude Desktop |
| |
Codex CLI |
| |
Cursor |
| |
Strands Agents |
| |
Amazon Quick | remote streamable HTTP + OAuth 2LO |
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.
Tools
Tool | Side effect | Notes |
| none | Checks company, approval contact and floor list against the live site |
| none | Parse + validate pasted CSV/TSV |
| creates a reservation |
|
| creates reservations | Sequential, one summary string returned |
| none | stdio deployments only (needs a shared filesystem) |
| creates reservations | stdio deployments only |
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).
Input constraints
Field | Rule |
|
|
|
|
|
|
|
|
| Korean mobile; |
| valid email address |
duplicates | rows with the same mobile + date + time inside one request are skipped and reported |
File / text format
Header row in Korean or English; survey-export headers are recognized too
(Full Name, Email, 연락처(…), 소속/회사 (…)). Unknown columns are ignored.
이름,회사,전화번호,이메일,방문일,방문시간,층
홍길동,ABC주식회사,01012345678,hong@abc.com,2026-11-15,10:00,12Lists 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.
Configuration
Variable | Description | Default | Required |
| Tenant company name as registered in Centerfield | (empty) | ✅ |
| Mobile number of the approval contact registered in Centerfield | (empty) | ✅ |
| Building code / display key |
| |
| Floor when a row omits it ( |
| |
|
|
| |
| HTTP bind address and path |
| |
| Streamable HTTP mode |
| |
| Host allow-list for DNS-rebinding protection ( | (empty) | |
| Force file tools on/off | on for stdio, off for HTTP | |
| Centerfield base URL |
| |
| HTTP timeout (seconds) |
| |
| Max visitors per bulk request (use |
| |
| Delay between submissions (seconds) |
| |
| Extra | (unset) |
.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.
Remote mode (Amazon Quick, hosted deployments)
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 imageSee 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.
Development & testing
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 liveThe last command creates one real reservation; confirm it in the Centerfield mobile app and cancel it there (there is no cancel API).
How it works
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.
MCP Registry
Listed as io.github.hmkim/centerfield-visitor-mcp (see server.json).
mcp-name: io.github.hmkim/centerfield-visitor-mcp
License
Available Tools
6 toolspreview_visitors_from_fileA
파일(.xlsx/.csv/.tsv)의 방문자 목록을 미리 확인합니다 (실제 등록하지 않음). Keywords: 센터필드, 방문자 미리보기, 파일 확인, preview visitors, 명단 확인, 등록 전 확인
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| default_floor | No | ||
| participation | No | ||
| default_purpose | No | ||
| default_visit_date | No | ||
| default_visit_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose the single most important trait: this is a non-mutating preview. It says nothing about permissions/auth, file size limits, or how malformed rows are handled, and the only structured signal is an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and the dry-run qualifier are front-loaded in a single compact sentence. The trailing keyword list is largely SEO filler that adds little, but it is short enough not to obscure the main statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers what a preview returns, and the description covers the non-mutating nature of the call. What is missing is any explanation of how the five default_* parameters are applied to file rows lacking those fields, which is essential context for interpreting a preview result on a 6-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and none of the six parameters carry schema descriptions. The description only implies file_path semantics via the listed file extensions; the five optional defaults (default_floor, participation, default_purpose, default_visit_date, default_visit_time) — which materially change preview output — are completely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (preview), resource (visitor list), and input source (file), plus the supported formats (.xlsx/.csv/.tsv). It also negates the sibling action ('does not actually register'), so an agent can separate it from register_visitors_from_file and preview_visitors_from_text without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(실제 등록하지 않음)' gives clear context for when to reach for this tool: a dry run before committing a registration. It does not, however, explicitly name the alternative siblings (preview_visitors_from_text, register_visitors_from_file) or state exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_visitors_from_textA
텍스트(복사/붙여넣기)로 방문자 목록을 입력받아 등록 없이 파싱·검증 결과만 보여줍니다. 등록 전에 먼저 호출하세요. Keywords: 센터필드, 방문자 미리보기, 명단 확인, preview visitors, 텍스트 확인, 등록 전 확인
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| default_floor | No | ||
| participation | No | ||
| default_purpose | No | ||
| default_visit_date | No | ||
| default_visit_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does disclose the key trait of not registering ('등록 없이') and only returning parse/validation results, but it omits other behavioral details such as authentication, rate limits, or side effects beyond registration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is concise and front-loaded, with the main action and usage in two sentences. The appended keyword list adds noise without helping an agent invoke the tool, keeping it from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no annotations, and 0% schema description coverage, the description is incomplete. It covers purpose and pre-registration usage, but leaves optional parameter semantics unexplained and does not clarify text format or relation to file-based preview tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 6 parameters, so the description should compensate heavily. It only indicates that 'text' is the visitor list input; the five optional parameters (default_floor, participation, default_purpose, default_visit_date, default_visit_time) are not described at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (parse/validate) and resource (visitor list from text), and explicitly scopes it as a preview without registration. This clearly distinguishes it from sibling registration tools like register_visitors_from_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call this before registration ('등록 전에 먼저 호출하세요'), giving clear context. It does not name when-not-to-use or explicitly contrast with preview_visitors_from_file, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_visitorB
센터필드 빌딩 방문자 1명을 예약 등록합니다. dry_run=true면 사이트 검증까지만 하고 제출하지 않습니다. Keywords: 센터필드, 방문자 등록, 방문 예약, 방문 신청, visitor registration, centerfield reservation, register visitor, book visitor
| Name | Required | Description | Default |
|---|---|---|---|
| floor | No | ||
| dry_run | No | ||
| visit_date | Yes | ||
| visit_time | Yes | ||
| visitor_name | Yes | ||
| visit_purpose | No | meeting | |
| visitor_email | Yes | ||
| visitor_mobile | Yes | ||
| visitor_company_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose one important behavioral trait — dry_run performs validation only and does not submit — but says nothing about permissions/auth, duplicate handling, whether the booking is idempotent, or what happens on failure. Partial coverage for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core behavior is front-loaded in the first sentence, with the dry_run caveat second. The trailing keyword block is redundant noise for an agent but may aid retrieval; overall still compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be documented, but with 9 parameters (6 required) at 0% schema coverage and only dry_run explained, an agent lacks enough information to populate the remaining required fields correctly. Incomplete for a multi-param mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — all 9 parameters have only titles, no descriptions. The description explains only dry_run, leaving visitor_mobile format, visit_date/visit_time format, floor, and the visit_purpose default ('meeting') completely unspecified in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: registering exactly one visitor reservation at the Centerfield building. The '1명' (one person) implicitly distinguishes it from the bulk siblings (register_visitors_from_text/file), though it never names them. Clear, but sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the dry_run=true branch (validate only, do not submit), which is genuine usage guidance. However, it gives no guidance on when to use this single-visitor tool versus register_visitors_from_text/file, nor any prerequisites such as who may file the reservation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_visitors_from_fileB
Excel/CSV/TSV 파일에서 방문자 목록을 읽어 일괄 등록합니다. 날짜/시간 컬럼이 없으면 default_visit_date/default_visit_time 지정. dry_run=true면 미제출. Keywords: 센터필드, 방문자 일괄 등록, 대량 등록, bulk registration, 엑셀 등록, CSV 등록, 파일로 등록, batch visitor, 방문자 명단
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| file_path | Yes | ||
| default_floor | No | ||
| participation | No | ||
| default_purpose | No | ||
| default_visit_date | No | ||
| default_visit_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the important mutation-control trait (dry_run=true means nothing is submitted) and the column-fallback rule, which is genuinely beyond the schema. It is silent on permissions, row-level validation/error behavior, duplicate handling, and whether partial failures roll back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core behavior is front-loaded in the first sentence, with the date/time fallback and dry_run clause following in tight order. The trailing keyword block is long but functional for retrieval; little is wasted otherwise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a 7-parameter bulk mutation tool with zero annotation coverage, though, the description should say more about expected file columns and what happens to invalid rows; three parameters and the failure model remain undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains default_visit_date/default_visit_time (and dry_run), roughly half the parameters, but leaves default_floor, default_purpose, and participation entirely undefined in both description and schema, so the agent cannot tell what values those accept or what they default to semantically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (bulk-register visitors read from a file) and enumerates the accepted formats (Excel/CSV/TSV), which cleanly separates it from the single-visitor sibling register_visitor and from the text-based register_visitors_from_text. It never names the preview counterpart preview_visitors_from_file, so sibling routing is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete usage conditions: supply default_visit_date/default_visit_time when the file lacks date/time columns, and dry_run=true to avoid submission. However it never states when to prefer this over preview_visitors_from_file or register_visitors_from_text, and no prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_visitors_from_textB
텍스트(복사/붙여넣기)로 방문자 목록을 입력받아 일괄 등록합니다. 날짜/시간 컬럼이 없는 참석자 명단은 default_visit_date/default_visit_time을 함께 지정하세요. dry_run=true면 제출하지 않습니다. Keywords: 센터필드, 방문자 등록, 텍스트 입력, 복사 붙여넣기, paste visitors, text registration, 일괄 등록, 방문자 목록
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| dry_run | No | ||
| default_floor | No | ||
| participation | No | ||
| default_purpose | No | ||
| default_visit_date | No | ||
| default_visit_time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that dry_run=true suppresses submission and that this is a bulk mutation, but says nothing about auth requirements, duplicate handling, parse-failure behavior, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operative content is front-loaded and clear in the first three sentences, but the trailing 'Keywords:' block is search-optimization padding that adds little selection value for an agent and inflates the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be described, but for a 7-parameter, no-annotation mutation tool the description omits the critical pasted-text format (expected columns/delimiters) and any pointer to the preview sibling. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and it only partially does: it explains text, dry_run, default_visit_date and default_visit_time, leaving default_floor, participation, default_purpose and the expected text column format undocumented. The date/time-column constraint is a genuinely useful semantic addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: bulk-registering visitors from pasted text ('텍스트... 방문자 목록을 입력받아 일괄 등록합니다'). This is distinguishable from the singular register_visitor and the file-based register_visitors_from_file, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one conditional: when the attendee list lacks date/time columns, set default_visit_date/default_visit_time. It also explains dry_run, but there is no guidance on when to prefer preview_visitors_from_text first or register_visitors_from_file instead. Usage is implied rather than framed against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_configurationA
센터필드 MCP 설정(입주사명, 승인 담당자, 층 목록)을 실제 사이트에 조회해 확인합니다. 예약을 생성하지 않습니다. Keywords: 센터필드 설정 확인, validate configuration, 담당자 확인, dry run, 연결 테스트
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool queries the live site and does not mutate state ('실제 사이트에 조회', '예약을 생성하지 않습니다'), effectively a read-only dry run. However it omits auth/permission requirements, whether it can fail on misconfiguration, and any side effects — gaps that matter for a validation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two core sentences are front-loaded with the action and the non-mutation guarantee, with zero waste. The trailing 'Keywords:' line is somewhat redundant with the body text, mildly diluting the otherwise tight structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and a zero-parameter validation tool with a clear no-side-effect statement is largely self-contained. The remaining omission is what failure looks like when the queried site settings do not match local config, which would help an agent interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so per the scoring baseline this is a 4. The description correctly does not pad with parameter talk, though the enumerated settings fields are informational rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource in Korean (조회해 확인합니다 = query and verify the Centerfield MCP settings), enumerates exactly what is validated (tenant company name, approval manager, floor list), and explicitly contrasts with siblings via '예약을 생성하지 않습니다' (does not create a reservation). An agent can distinguish this read/validation tool from the register_* siblings without consulting any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'dry run' and '연결 테스트' (connection test) signal the intended context clearly, and the explicit note that no reservation is created implicitly routes write intent to the sibling tools. It stops short of stating a prerequisite relationship (e.g. run this before register_visitor), so it is clear but not fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.2.1- First observed
preview_visitors_from_file - First observed
preview_visitors_from_text - First observed
register_visitor - First observed
register_visitors_from_file - First observed
register_visitors_from_text - First observed
validate_configuration
TDQS
Scored across 6 tools
Each tool has a distinct input/action focus: config validation, single registration, text preview, text bulk registration, file preview, and file bulk registration. The main ambiguity is around validation: validate_configuration, preview_* tools, and dry_run modes in register tools all validate without submitting, though descriptions clarify the differences.
Mostly consistent snake_case with a verb_noun pattern: validate_configuration, register_visitor, preview_visitors_from_text, register_visitors_from_text, etc. The minor inconsistency is singular register_visitor versus plural register_visitors_* for bulk operations.
Six tools is well-scoped for visitor registration: one config validator, one single-visitor registration, and preview/register pairs for text and file bulk input. No obvious bloat, and each tool earns its place by input type or operation.
The surface covers configuration validation, single registration, bulk registration, and dry-run previews for text and file inputs. However, it lacks lifecycle operations such as listing, retrieving, updating, canceling, or deleting visitor reservations, which are common needs in a visitor registration domain.
Maintenance
Related MCP Connectors
AI agent platform: manage leads, conversations, bots, calendar and CRM via MCP.
Let AI agents query data and act across all your business apps via MCP.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
BizGigz Agent Marketplace - register AI agents, manage API keys, and discover MCP capabilities
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for CourtReserve racquet-sports club management, enabling AI clients to manage members, reservations, events, and transactions via natural language.291MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI agents to Coordinalo's scheduling platform, enabling booking management, availability checks, client management, and reporting through MCP tools.1Apache 2.0
- FlicenseCqualityBmaintenanceAn MCP server that automates HR onboarding tasks including employee management, email, ticketing, meeting scheduling, and leave management, enabling AI agents to handle new-hire workflows from a single prompt.121-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to manage doctor appointments by creating, finding, checking status, canceling, and rescheduling appointments through an MCP server that connects to an external appointment REST API.-