MCP Near Me
An MCP server that enables compatible AI assistants to discover participating local service providers, check live availability, and book appointments for home appliance and commercial equipment repair after user approval.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcpnear.com/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to voicedispatcher.com ·
- Passed Endpoint and vendor documentation share a domain
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Find local appliance repair providers
- Check live appointment availability
- Book diagnostic visits after approval
- Reschedule or cancel appointments
Source and maintenance
Protocol and capabilities
- Server
- near-me 0.3.4
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- 16 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
start_service_request — Start a service request
Start a new supported service request immediately with the user's full intent and known public facts. Returns the vertical introduction and next intake/matching step, including availability when intake is complete; no separate lookup is needed. Use provider_hint only for an explicitly named company.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user_intent",
"idempotency_key"
],
"properties": {
"answers": {
"type": "object",
"default": {},
"properties": {
"brand": {
"description": "Brand"
},
"model": {
"description": "Model"
},
"zip_code": {
"description": "ZIP"
},
"appliance_type": {
"description": "Appliance type"
},
"selected_time_key": {
"type": "string",
"minLength": 1,
"description": "Exact time key returned by MCP Near Me after the user chooses an arrival window."
},
"problem_description": {
"description": "Problem"
}
},
"additionalProperties": false
},
"user_intent": {
"type": "string",
"maxLength": 3000,
"minLength": 3
},
"provider_hint": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 3
},
{
"type": "null"
}
]
},
"vertical_hint": {
"enum": [
"appliance_repair",
"commercial_kitchen_refrigeration_repair"
],
"type": "string",
"description": "Optional exact live vertical ID. Omit it when uncertain and let the server classify user_intent."
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 16
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"request_id",
"state_version",
"vertical_id",
"user_stage",
"known_fields",
"field_batch",
"next_action"
],
"properties": {
"request_id": {
"type": "string"
},
"user_stage": {
"enum": [
"intake",
"matching",
"confirmation"
],
"type": "string"
},
"field_batch": {
"type": "object",
"required": [
"required",
"conditionally_required",
"optional"
],
"properties": {
"optional": {
"type": "array",
"items": {}
},
"required": {
"type": "array",
"items": {}
},
"conditionally_required": {
"type": "array",
"items": {}
}
},
"additionalProperties": {}
},
"next_action": {
"type": "string"
},
"vertical_id": {
"type": "string"
},
"known_fields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"vertical_introduction": {
"type": "object",
"required": [
"message",
"presentation_order",
"present_once"
],
"properties": {
"message": {
"type": "string"
},
"present_once": {
"type": "boolean",
"const": true
},
"presentation_order": {
"type": "string",
"const": "lead_same_message"
}
},
"additionalProperties": false
}
},
"additionalProperties": {}
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_service_request — Update a service request
Submit supplied answers and any chosen selected_time_key with the latest expected_state_version. Omitted optional/conditional fields do not block progress. Returns the updated next_action and current availability; continue directly without get_service_options. choose_service_provider means ask for a company before opening its protected contact card.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"request_id",
"expected_state_version",
"idempotency_key"
],
"properties": {
"answers": {
"type": "object",
"default": {},
"properties": {
"brand": {
"description": "Brand"
},
"model": {
"description": "Model"
},
"zip_code": {
"description": "ZIP"
},
"appliance_type": {
"description": "Appliance type"
},
"selected_time_key": {
"type": "string",
"minLength": 1,
"description": "Exact time key returned by MCP Near Me after the user chooses an arrival window."
},
"problem_description": {
"description": "Problem"
}
},
"additionalProperties": false
},
"request_id": {
"type": "string",
"maxLength": 200,
"minLength": 10
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 16
},
"expected_state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"explicitly_unknown_field_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"default": []
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"request_id",
"state_version",
"vertical_id",
"user_stage",
"known_fields",
"field_batch",
"next_action"
],
"properties": {
"request_id": {
"type": "string"
},
"user_stage": {
"enum": [
"intake",
"matching",
"confirmation"
],
"type": "string"
},
"field_batch": {
"type": "object",
"required": [
"required",
"conditionally_required",
"optional"
],
"properties": {
"optional": {
"type": "array",
"items": {}
},
"required": {
"type": "array",
"items": {}
},
"conditionally_required": {
"type": "array",
"items": {}
}
},
"additionalProperties": {}
},
"next_action": {
"type": "string"
},
"vertical_id": {
"type": "string"
},
"known_fields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"vertical_introduction": {
"type": "object",
"required": [
"message",
"presentation_order",
"present_once"
],
"properties": {
"message": {
"type": "string"
},
"present_once": {
"type": "boolean",
"const": true
},
"presentation_order": {
"type": "string",
"const": "lead_same_message"
}
},
"additionalProperties": false
}
},
"additionalProperties": {}
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_service_options — Get current service options
Refresh availability only when needed, such as when the user asks to check again. start_service_request and update_service_request already return current matching data. Returns aggregated windows and refinement fields without selecting a company or reserving capacity.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"request_id"
],
"properties": {
"request_id": {
"type": "string",
"maxLength": 200,
"minLength": 10
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"request_id",
"state_version",
"vertical_id",
"user_stage",
"known_fields",
"field_batch",
"next_action"
],
"properties": {
"request_id": {
"type": "string"
},
"user_stage": {
"enum": [
"intake",
"matching",
"confirmation"
],
"type": "string"
},
"field_batch": {
"type": "object",
"required": [
"required",
"conditionally_required",
"optional"
],
"properties": {
"optional": {
"type": "array",
"items": {}
},
"required": {
"type": "array",
"items": {}
},
"conditionally_required": {
"type": "array",
"items": {}
}
},
"additionalProperties": {}
},
"next_action": {
"type": "string"
},
"vertical_id": {
"type": "string"
},
"known_fields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"vertical_introduction": {
"type": "object",
"required": [
"message",
"presentation_order",
"present_once"
],
"properties": {
"message": {
"type": "string"
},
"present_once": {
"type": "boolean",
"const": true
},
"presentation_order": {
"type": "string",
"const": "lead_same_message"
}
},
"additionalProperties": false
}
},
"additionalProperties": {}
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}render_service_request_form — Open the final service confirmation card
Open the protected contact/terms/Confirm card only after company choice. Pass the explicitly chosen company's option_key from current service_options; omit it only for a single option or a previously selected company. When a live card is displayed, omit prose or use at most one short neutral sentence: use only assistant_message in the customer's language (English: "Details and current status are in the card."). End the reply there. Do not add an introduction, summary, instructions to review or confirm, or claims that a booking is created or not yet created: this text remains after the card changes. Do not repeat companies, dates, times, prices, policies, booking references, status claims, comparisons or next steps outside the card. This applies only to successful card presentation; keep normal intake/choice questions and concise error or unavailable-UI guidance.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"request_id"
],
"properties": {
"option_key": {
"type": "string",
"maxLength": 100,
"minLength": 10,
"description": "Exact option_key from this request's current service_options for the company explicitly chosen by the user. Never infer a choice from price or ordering."
},
"request_id": {
"type": "string",
"maxLength": 200,
"minLength": 10
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"request_id",
"state_version",
"presentation",
"assistant_message"
],
"properties": {
"request_id": {
"type": "string"
},
"presentation": {
"type": "string",
"const": "interactive_card"
},
"state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"assistant_message": {
"type": "string",
"const": "Details and current status are in the card.",
"description": "The only permitted optional caption for the live card. Translate to the customer's language without adding details or instructions."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}select_service_option — Check the chosen company’s availability
Called only by the protected contact form after an explicit Confirm action. It rechecks the company already chosen in chat, creates a temporary hold and returns the protected contact session. Never use it to present a company picker or on card startup. It does not create a booking.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"request_id",
"expected_state_version",
"option_key",
"idempotency_key"
],
"properties": {
"option_key": {
"type": "string",
"maxLength": 100,
"minLength": 10
},
"request_id": {
"type": "string",
"maxLength": 200,
"minLength": 10
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 16
},
"expected_state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"request_id",
"state_version",
"option_key",
"provider_public_name",
"service_date",
"arrival_window",
"next_action"
],
"properties": {
"option_key": {
"type": "string"
},
"request_id": {
"type": "string"
},
"next_action": {
"enum": [
"complete_protected_form",
"confirmed"
],
"type": "string"
},
"service_date": {
"type": "string"
},
"state_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"arrival_window": {
"type": "string"
},
"provider_public_name": {
"type": "string"
}
},
"additionalProperties": {}
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_service_booking — Create the confirmed service booking
Use only from the protected final card with its one-time authorization after the user presses Confirm. Provider, request, hold, time and protected answers come from server context; do not pass or reconstruct them. This anonymous action completes the booking and must not trigger Connect or phone verification. Safe retries must reuse the same idempotency key.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"booking_authorization_token",
"idempotency_key",
"source",
"anonymous_session_id",
"correlation_id"
],
"properties": {
"source": {
"enum": [
"chatgpt_plugin",
"chatgpt_ads",
"ai_search",
"organic_search",
"paid_search",
"manual_referral",
"provider_referral",
"direct",
"test"
],
"type": "string"
},
"campaign_id": {
"type": "string",
"maxLength": 200
},
"correlation_id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 16
},
"anonymous_session_id": {
"type": "string",
"maxLength": 200,
"minLength": 8
},
"booking_authorization_token": {
"type": "string",
"minLength": 32
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"booking_id",
"provider_public_name",
"service_date",
"arrival_window",
"timezone",
"status"
],
"properties": {
"status": {
"type": "string"
},
"timezone": {
"type": "string"
},
"booking_id": {
"type": "string"
},
"service_date": {
"type": "string"
},
"arrival_window": {
"type": "string"
},
"account_linking": {
"anyOf": [
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"const": "already_linked"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"const": "unavailable"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"status",
"linking_session_id",
"expires_at",
"next_action"
],
"properties": {
"status": {
"type": "string",
"const": "required"
},
"expires_at": {
"type": "string"
},
"next_action": {
"type": "string",
"const": "complete_account_link"
},
"linking_session_id": {
"type": "string"
}
},
"additionalProperties": false
}
]
},
"public_booking_ref": {
"type": "string"
},
"provider_public_name": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}open_service_account — Open secure appointment management
Use only when the user explicitly asks to view, reschedule or cancel existing appointments or manage saved addresses. Opens the existing first-party account portal inside a card, never returns customer data. Never call for general questions or new bookings. The customer signs in and makes changes inside the card on MCP Near Me; never ask to connect or reconnect a ChatGPT account, and never request a phone or code in chat. When a live card is displayed, omit prose or use at most one short neutral sentence: use only assistant_message in the customer's language (English: "Details and current status are in the card."). End the reply there. Do not add an introduction, summary, instructions to review or confirm, or claims that a booking is created or not yet created: this text remains after the card changes. Do not repeat companies, dates, times, prices, policies, booking references, status claims, comparisons or next steps outside the card. This applies only to successful card presentation; keep normal intake/choice questions and concise error or unavailable-UI guidance.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"intent": {
"enum": [
"view",
"reschedule",
"cancel"
],
"type": "string",
"default": "view"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"result"
],
"properties": {
"result": {
"anyOf": [
{
"type": "object",
"required": [
"account_url",
"intent",
"authentication",
"presentation",
"assistant_message"
],
"properties": {
"intent": {
"type": "string"
},
"account_url": {
"type": "string"
},
"presentation": {
"type": "string",
"const": "interactive_card"
},
"authentication": {
"type": "string",
"const": "first_party_only"
},
"assistant_message": {
"type": "string",
"const": "Details and current status are in the card.",
"description": "The only permitted optional caption for the live card. Translate to the customer's language without adding details or instructions."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"category",
"message",
"retryable",
"correlation_id",
"details"
],
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"category": {
"type": "string"
},
"retryable": {
"type": "boolean"
},
"correlation_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
16 advertised
near-me-service-request
ui://near-me/service-request-v15.htmlnear-me-service-request-compatibility-1
ui://near-me/service-request-v14.htmlnear-me-service-request-compatibility-2
ui://near-me/service-request-v13.htmlnear-me-service-request-compatibility-3
ui://near-me/service-request-v12.htmlnear-me-service-request-compatibility-4
ui://near-me/service-request-v11.htmlnear-me-service-request-compatibility-5
ui://near-me/service-request-v10.htmlnear-me-service-request-compatibility-6
ui://near-me/service-request-v9.htmlnear-me-service-request-compatibility-7
ui://near-me/service-request-v8.htmlnear-me-service-request-compatibility-8
ui://near-me/service-request-v7.htmlnear-me-service-request-compatibility-9
ui://near-me/service-request-v6.htmlnear-me-service-request-compatibility-10
ui://near-me/service-request-v5.htmlnear-me-service-request-compatibility-11
ui://near-me/service-request-v4.htmlnear-me-management
ui://near-me/management-v5.htmlnear-me-management-compatibility-1
ui://near-me/management-v4.htmlnear-me-management-compatibility-2
ui://near-me/management-v3.htmlnear-me-account
ui://near-me/account-v1.html90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 552 ms
- 95th percentile latency
- 552 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 552 ms · metadata changed · 7 tool(s), 16 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mcp-near-me https://mcpnear.com/mcpCodex
codex mcp add mcp-near-me --url https://mcpnear.com/mcpCursor
{
"mcpServers": {
"mcp-near-me": {
"url": "https://mcpnear.com/mcp"
}
}
}Cline
{
"mcpServers": {
"mcp-near-me": {
"type": "streamableHttp",
"url": "https://mcpnear.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"mcp-near-me": {
"type": "http",
"url": "https://mcpnear.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http mcp-near-me https://mcpnear.com/mcpClaude Desktop
https://mcpnear.com/mcpWindsurf
{
"mcpServers": {
"mcp-near-me": {
"serverUrl": "https://mcpnear.com/mcp"
}
}
}Let your agent find its tools
Find servers like MCP Near Me from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run MCP Near Me?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.