# vstepanov.com MCP

Public documentation for the remote MCP service at `https://vstepanov.com/mcp`.

Use this MCP server to retrieve consulting information and prepare an enquiry link.

The informational tools are public. The service does not send messages directly, take payment, book meetings, or perform consulting. Clients should not invent contact details or put confidential information in an enquiry message.

## Connection

| Field | Value |
| --- | --- |
| Endpoint | `https://vstepanov.com/mcp` |
| Service version | `0.2.0` |
| Transport | Stateless Streamable HTTP over `POST` |
| Authentication | None for the current public deployment |
| Client requirement | A remote MCP client with Streamable HTTP support |

Use the exact endpoint above; it has no trailing slash. No account, API key, OAuth, or payment is required by this MCP service; your chosen AI client may have its own access requirements.

Tested with MCP protocol versions `2026-07-28` and `2025-11-25`.

This generic configuration is illustrative. Client configuration formats vary. Use a client that supports remote MCP connections; no local copy of this server or package installation on its behalf is needed:

```json
{
  "mcpServers": {
    "vstepanov": {
      "url": "https://vstepanov.com/mcp"
    }
  }
}
```

Use the client’s MCP `tools/list` and `tools/call` operations.

## Tools

The first three tools return JSON-encoded text in the MCP `content` array. `prepare_enquiry` returns the draft in `structuredContent` and also includes JSON text with the review link and next-step instruction.

### `get_consulting_profile`

Returns the concise, source-backed profile, positioning, evidence, links, and the informational scope of the service.

Input:

```json
{}
```

### `get_service_details`

Returns the four published service areas and their source-backed scope:

- AI strategy
- Architecture review
- Agent reliability
- Technical leadership

Input:

```json
{}
```

The response does not publish prices, availability, guarantees, or engagement terms.

### `get_contact_options`

Returns the three published ways to continue a conversation: the enquiry form, LinkedIn, and the website. The separate `prepare_enquiry` tool creates the handoff link. This tool is read-only and never sends a message.

Input:

```json
{}
```

### `prepare_enquiry`

Builds a prefilled Tally enquiry link from details supplied by the caller. It does not open the form, send a message, or submit the enquiry.

All three input fields are required, and additional properties are rejected.

Input fields:

| Field | Rules |
| --- | --- |
| `name` | String, trimmed, 1–120 characters |
| `email` | String, trimmed, valid email address, at most 254 characters |
| `message` | String, trimmed, 1–3,000 characters |

The service URL-encodes the supplied values as `mcp_name`, `mcp_email`, and `mcp_message`. If the encoded enquiry URL would exceed 8,000 characters, the call returns an error and the value is not truncated.

Illustrative call using synthetic details:

```json
{
  "name": "Jamie Example",
  "email": "jamie@example.com",
  "message": "Please help us prepare our AI agent for launch."
}
```

Illustrative `structuredContent` example (this is an example, not a claim that the call was executed):

```json
{
  "status": "draft",
  "sent": false,
  "recipient": "Vladislav Stepanov",
  "action_label": "Review and send enquiry",
  "review_url": "https://tally.so/r/ob1L2b?mcp_name=Jamie+Example&mcp_email=jamie%40example.com&mcp_message=Please+help+us+prepare+our+AI+agent+for+launch.",
  "next_step": "Open the form, review the prefilled details, and click Submit. No enquiry has been sent yet."
}
```

Clients must display the `review_url` and clearly tell the person that the enquiry is unsent while `sent` is `false`. They must not invent contact details or confidential message content.

## Enquiry flow

1. The caller supplies an agreed name, email address, and message draft.
2. The service locally creates a Tally URL containing those values in `mcp_name`, `mcp_email`, and `mcp_message`.
3. A person opens the link, reviews the prefilled form, and chooses whether to click **Submit**.
4. Tally handles its configured notifications after a form submission.

This flow does not send the enquiry, book a meeting, take payment, or perform consulting.

## Access and operational notes

- The endpoint is intended for server-to-server MCP clients.
- A request with an `Origin` header is refused unless that origin is explicitly allowlisted. The current deployment has an empty allowlist, so browser-origin requests are refused.
- Browser CORS access is unsupported.
- `/mcp/` (with a trailing slash) returns `404`.
- `GET`, `OPTIONS`, and `DELETE` to `/mcp` return `405` with `Allow: POST`; the browser endpoint is not the documentation page, and an SSE `GET` endpoint is not required.
- There is no public `healthz` endpoint. The process health route is internal to hosting; there is no public health URL.
- The current configured limit is 60 requests per minute per peer address. Requests behind a shared proxy can therefore share one bucket. A `429` response indicates the limit; clients should back off until the reset time. The response includes `ratelimit-limit`, `ratelimit-remaining`, and `ratelimit-reset` (Unix seconds).
- POST bodies are limited to 1 MiB. Oversized requests return `413`.
- The service is public. No uptime guarantee or SLA.

The current deployment has no bearer token configured. If a future deployment enables one, clients will need the published authentication requirement for that deployment.

## Privacy and data flow

During an MCP request, the service processes supplied enquiry fields transiently to construct the review URL. It has no application database and does not log request content. This statement describes this service’s handling; it is not a claim about every network, proxy, AI client, browser, or provider involved.

The generated review link contains the supplied name, email, and message. Those values could persist in an AI chat, browser history, or provider logs. Do not put confidential information, secrets, or sensitive project details in the fields.

Tally receives the values when the review link is opened. Opening the link and submitting the Tally form are separate actions. Read the [privacy policy](https://vstepanov.com/privacy/) and [terms](https://vstepanov.com/terms/) before using the service.

## Sources and support

- [Authoritative bio](https://vstepanov.com/llms.txt)
- [Website](https://vstepanov.com/)
- [Privacy policy](https://vstepanov.com/privacy/)
- [Terms](https://vstepanov.com/terms/)
- [Support form](https://tally.so/r/ob1L2b)
- [LinkedIn](https://linkedin.com/in/vstep1)
