# businessmcp

A set of MCP gateway utilities that checks upstream URLs, classifies failures, and keeps namespaced tool names distinct.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: businessmcp
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/businessmcp/mcp-gateway
- Updated: 2026-09-24
- HTML: https://affpapa.org/en/nevibecode/mcp/businessmcp

## What it does

A gateway may fetch a third-party MCP server URL supplied by a user. `isPublicHttpUrl` resolves the host and accepts it only when every returned address is public; `isBlockedIp` also handles IPv4 addresses embedded in IPv6. DNS rebinding can still happen between the check and the socket connection. Redirects need separate validation at every hop.

\`classifyUpstreamError` distinguishes authentication, transport, timeout, blocked-host, and unreachable failures. `describeFailure` turns a failure into a message for the user. `namespacedToolName` prefixes tool names and appends a short hash when truncation is needed. `withUpstream` tries Streamable HTTP, then SSE, and reports which transport worked. That helper requires `@modelcontextprotocol/client`; the other modules do not.

This is a utility package, not a complete gateway: it does not provide aggregation, authentication, or a policy layer. The DNS check leaves a time-of-check/time-of-use risk before the connection is made.

## Requirements
- Remote server: `https://businessmcp.com/api/mcp`

## Install

### Claude Code (native platform)

**Platform CLI: remote server**
```bash
claude mcp add --transport http businessmcp https://businessmcp.com/api/mcp
```

### Codex

**Platform CLI: remote server**
```bash
codex mcp add businessmcp --url https://businessmcp.com/api/mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "businessmcp": {
            "url": "https://businessmcp.com/api/mcp"
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "businessmcp": {
            "type": "http",
            "url": "https://businessmcp.com/api/mcp"
        }
    }
}
```

### Gemini CLI

**Platform CLI: remote server**
```bash
gemini mcp add -t http businessmcp https://businessmcp.com/api/mcp
```

## When to use it
- check an MCP server URL before fetching it
- identify why an upstream connection failed
- show users a readable failure message
- avoid collisions between namespaced tools
- fall back to a supported upstream transport

## Example prompts
- Check whether this MCP server URL resolves only to public IP addresses.
- Explain the upstream connection failure in a message for the user.
- Namespace these tools so their names remain distinct.

## Similar
- [apimesh](https://affpapa.org/en/nevibecode/mcp/apimesh.md) — MCP server · ★ 6
- [subdomain-takeover](https://affpapa.org/en/nevibecode/skills/subdomain-takeover.md) — skill · 3600 installs
- [who-owns-this-domain](https://affpapa.org/en/nevibecode/skills/who-owns-this-domain.md) — skill · 1900 installs
- [find-hidden-subdomains](https://affpapa.org/en/nevibecode/skills/find-hidden-subdomains.md) — skill · 1700 installs
- [attack-surface-recon](https://affpapa.org/en/nevibecode/skills/attack-surface-recon.md) — skill · 351 installs
- [OpenOSINT](https://affpapa.org/en/nevibecode/mcp/openosint.md) — MCP server · ★ 1819

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
