String Web Access API
Mcp

Self-hosted MCP

Run the open-source @usestring/mcp server locally over stdio.

The hosted server is the recommended option

Most setups should use the remote (hosted) server — nothing to install, and always the current tool set. Run it yourself only when your client cannot reach a remote MCP server, or your environment requires a local process.

The self-hosted server is published on npm as @usestring/mcp. It runs locally and talks to your MCP client over stdio, forwarding requests to the String Web Access API with your API key.

Self-hosting does not keep your traffic local — every call still reaches the Web Access API over HTTPS — and it makes you responsible for upgrades, so a stale install quietly misses tools added since you last pulled.

Run it

The simplest way is npx, which requires no install:

STRING_AI_API_KEY=your-key npx @usestring/mcp

Or install it globally and run the string-ai-mcp binary:

npm install -g @usestring/mcp
STRING_AI_API_KEY=your-key string-ai-mcp

Environment

VariableRequiredDescription
STRING_AI_API_KEYYesYour String API key.

Client configuration

Add the server to your MCP client's config. The same block works for Claude Desktop (claude_desktop_config.json), Cursor, Windsurf, and VS Code:

mcpServers
{
  "mcpServers": {
    "string-ai": {
      "command": "npx",
      "args": ["-y", "@usestring/mcp"],
      "env": {
        "STRING_AI_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Claude Desktop

Add the block to claude_desktop_config.json.

Cursor / Windsurf

Add a global MCP server with the same command and env.

VS Code

Add it to your user settings JSON, or a shared .vscode/mcp.json.

How it works

┌───────────────────┐   stdio (JSON-RPC)   ┌──────────────────┐   HTTPS   ┌──────────────────┐
│ VS Code / Cursor  │ ◄──────────────────► │  @usestring/mcp  │ ────────► │  String          │
│ Windsurf / Claude │                      │  (this server)   │           │  Web Access API  │
└───────────────────┘                      └──────────────────┘           └──────────────────┘
  1. Your client spawns the server as a child process and talks to it over stdio.
  2. When the model needs the web, it calls web_access_fetch, web_access_search, or web_access_sitemap.
  3. The server forwards the request to the Web Access API using your STRING_AI_API_KEY and returns the result.

Test it

Use the MCP Inspector to try the tools interactively:

npx @modelcontextprotocol/inspector npx @usestring/mcp

Don't want to run anything locally? Use the hosted server instead.