Add hosted MCP connection docs and photorealistic stapler hero
- Add how-to/hosted-mcp.mdx with connection instructions for: - Claude Code quick connect - MCP Settings JSON config - Python SDK example - Self-hosting with Docker - Add swingline-hero.png (photorealistic red Swingline) - Add red-swingline.svg for alternate use - Update hero image to use photorealistic stapler - Add "Connect to Hosted Server" to sidebar with "New" badge
This commit is contained in:
parent
5ae7040496
commit
580c218b82
5 changed files with 219 additions and 1 deletions
178
src/content/docs/how-to/hosted-mcp.mdx
Normal file
178
src/content/docs/how-to/hosted-mcp.mdx
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
---
|
||||
title: Connect to Hosted Server
|
||||
description: Use mcwaddams without installing anything locally.
|
||||
---
|
||||
|
||||
import { Aside, Code, Tabs, TabItem, Card, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
# Connect to Hosted Server
|
||||
|
||||
> *"I was told there would be no installation..."*
|
||||
|
||||
Don't want to install anything? Connect to our hosted mcwaddams server via HTTP.
|
||||
|
||||
## Quick Connect
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="Claude Code">
|
||||
```bash
|
||||
claude mcp add mcwaddams-hosted --transport http "https://mcwaddams.supported.systems/mcp"
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem label="MCP Settings JSON">
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"mcwaddams": {
|
||||
"transport": {
|
||||
"type": "streamable-http",
|
||||
"url": "https://mcwaddams.supported.systems/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
</TabItem>
|
||||
<TabItem label="Python SDK">
|
||||
```python
|
||||
from mcp import ClientSession
|
||||
from mcp.client.streamable_http import streamable_http_client
|
||||
|
||||
async with streamable_http_client("https://mcwaddams.supported.systems/mcp") as (read, write):
|
||||
async with ClientSession(read, write) as session:
|
||||
await session.initialize()
|
||||
tools = await session.list_tools()
|
||||
print(f"Connected! {len(tools.tools)} tools available")
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
<Aside type="tip" title="No API Key Required">
|
||||
The hosted server is currently free and open. No authentication needed.
|
||||
</Aside>
|
||||
|
||||
## What's Available
|
||||
|
||||
All 20+ mcwaddams tools are available via the hosted server:
|
||||
|
||||
<CardGrid>
|
||||
<Card title="Document Extraction" icon="document">
|
||||
Extract text, images, metadata from Word, Excel, PowerPoint
|
||||
</Card>
|
||||
<Card title="Legacy Support" icon="puzzle">
|
||||
Process `.doc`, `.xls`, `.ppt` files from the 90s
|
||||
</Card>
|
||||
<Card title="MCP Resources" icon="list-format">
|
||||
Index documents and fetch chapters/sheets on demand
|
||||
</Card>
|
||||
<Card title="Smart Fallbacks" icon="rocket">
|
||||
Multiple extraction methods with automatic fallback
|
||||
</Card>
|
||||
</CardGrid>
|
||||
|
||||
## Hosted vs Local
|
||||
|
||||
| Feature | Hosted | Local (uvx) |
|
||||
|---------|--------|-------------|
|
||||
| Installation | None | `uvx mcwaddams` |
|
||||
| File Access | URL only | Local + URL |
|
||||
| Speed | Network latency | Instant |
|
||||
| Privacy | Files processed on server | Files stay local |
|
||||
| Availability | Requires internet | Works offline |
|
||||
|
||||
<Aside type="caution" title="Privacy Note">
|
||||
When using the hosted server, your documents are transmitted to and processed on our server. For sensitive documents, use the local installation instead.
|
||||
</Aside>
|
||||
|
||||
## Using with URLs
|
||||
|
||||
The hosted server can process documents from URLs directly:
|
||||
|
||||
```python
|
||||
# Extract text from a public document
|
||||
result = await session.call_tool("extract_text", {
|
||||
"file_path": "https://example.com/report.docx"
|
||||
})
|
||||
```
|
||||
|
||||
This is particularly useful for processing documents already hosted online.
|
||||
|
||||
## Self-Hosting
|
||||
|
||||
Want the convenience of HTTP without using our server? Self-host your own:
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```yaml
|
||||
services:
|
||||
mcwaddams:
|
||||
image: ghcr.io/ryanmalloy/mcwaddams:latest
|
||||
environment:
|
||||
- MCP_TRANSPORT=streamable-http
|
||||
- MCP_HOST=0.0.0.0
|
||||
- MCP_PORT=8000
|
||||
ports:
|
||||
- "8000:8000"
|
||||
```
|
||||
|
||||
### With Caddy Reverse Proxy
|
||||
|
||||
Clone the repo and use our docker-compose with caddy-docker-proxy labels:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ryanmalloy/mcwaddams.git
|
||||
cd mcwaddams
|
||||
cp .env.example .env
|
||||
# Edit .env to set your hostname
|
||||
make docker-up
|
||||
```
|
||||
|
||||
Your server will be available at `https://your-domain.com/mcp`
|
||||
|
||||
### Local Development
|
||||
|
||||
Run HTTP mode locally without Docker:
|
||||
|
||||
```bash
|
||||
# Install
|
||||
pip install mcwaddams
|
||||
|
||||
# Run with HTTP transport
|
||||
MCP_TRANSPORT=streamable-http MCP_HOST=127.0.0.1 MCP_PORT=8000 python -m mcwaddams.server
|
||||
```
|
||||
|
||||
Or with uv:
|
||||
|
||||
```bash
|
||||
MCP_TRANSPORT=streamable-http MCP_HOST=127.0.0.1 MCP_PORT=8000 uvx mcwaddams
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Connection Refused
|
||||
|
||||
```
|
||||
Error: Connection refused
|
||||
```
|
||||
|
||||
The server may be temporarily down. Try:
|
||||
1. Check server status at https://status.supported.systems
|
||||
2. Fall back to local installation: `uvx mcwaddams`
|
||||
|
||||
### Timeout Errors
|
||||
|
||||
Large documents may take longer to process. The hosted server has a 60-second timeout per request.
|
||||
|
||||
For very large documents, consider:
|
||||
- Using local installation
|
||||
- Processing documents in chunks via pagination
|
||||
|
||||
### SSL/TLS Errors
|
||||
|
||||
Ensure you're using `https://` not `http://`. The hosted server requires TLS.
|
||||
|
||||
---
|
||||
|
||||
<div style="text-align: center; margin-top: 2rem; font-style: italic; opacity: 0.7;">
|
||||
*"So if you could just go ahead and connect... that would be great."*
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue