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
@ -57,6 +57,7 @@ export default defineConfig({
|
|||||||
label: 'How-To Guides',
|
label: 'How-To Guides',
|
||||||
badge: { text: 'Solve', variant: 'note' },
|
badge: { text: 'Solve', variant: 'note' },
|
||||||
items: [
|
items: [
|
||||||
|
{ label: 'Connect to Hosted Server', slug: 'how-to/hosted-mcp', badge: { text: 'New', variant: 'success' } },
|
||||||
{ label: 'Extract Tables from Word', slug: 'how-to/extract-tables' },
|
{ label: 'Extract Tables from Word', slug: 'how-to/extract-tables' },
|
||||||
{ label: 'Analyze Excel Data', slug: 'how-to/analyze-excel' },
|
{ label: 'Analyze Excel Data', slug: 'how-to/analyze-excel' },
|
||||||
{ label: 'Convert to Markdown', slug: 'how-to/convert-markdown' },
|
{ label: 'Convert to Markdown', slug: 'how-to/convert-markdown' },
|
||||||
|
|||||||
38
src/assets/red-swingline.svg
Normal file
38
src/assets/red-swingline.svg
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 40" fill="none">
|
||||||
|
<!-- Stapler base/anvil -->
|
||||||
|
<path d="M8 32 L72 32 L72 36 C72 38 70 40 68 40 L12 40 C10 40 8 38 8 36 Z" fill="#1e293b"/>
|
||||||
|
|
||||||
|
<!-- Base plate (metal part) -->
|
||||||
|
<rect x="12" y="30" width="56" height="4" rx="1" fill="#64748b"/>
|
||||||
|
|
||||||
|
<!-- Main body (red top) -->
|
||||||
|
<path d="M10 18 L70 18 L72 28 L70 30 L10 30 L8 28 Z" fill="#dc2626"/>
|
||||||
|
|
||||||
|
<!-- Body highlight -->
|
||||||
|
<path d="M10 18 L70 18 L71 23 L10 23 Z" fill="#ef4444"/>
|
||||||
|
|
||||||
|
<!-- Body shadow line -->
|
||||||
|
<line x1="10" y1="26" x2="70" y2="26" stroke="#b91c1c" stroke-width="1"/>
|
||||||
|
|
||||||
|
<!-- Swingline logo area (recessed) -->
|
||||||
|
<rect x="24" y="20" width="32" height="6" rx="1" fill="#b91c1c"/>
|
||||||
|
<text x="40" y="25" font-family="Arial, sans-serif" font-size="5" font-weight="bold" fill="#fca5a5" text-anchor="middle">SWINGLINE</text>
|
||||||
|
|
||||||
|
<!-- Staple loading slot -->
|
||||||
|
<rect x="14" y="19" width="6" height="3" rx="0.5" fill="#991b1b"/>
|
||||||
|
|
||||||
|
<!-- Push lever (back) -->
|
||||||
|
<path d="M66 12 C68 12 70 14 70 16 L70 18 L66 18 L66 14 C66 13 66 12 66 12" fill="#dc2626"/>
|
||||||
|
<path d="M66 12 C68 12 70 14 70 16 L70 17 L66 17 L66 14" fill="#ef4444"/>
|
||||||
|
|
||||||
|
<!-- Hinge pin -->
|
||||||
|
<circle cx="12" cy="20" r="2" fill="#475569"/>
|
||||||
|
<circle cx="12" cy="20" r="1" fill="#64748b"/>
|
||||||
|
|
||||||
|
<!-- Front nose -->
|
||||||
|
<path d="M70 22 L76 26 L76 30 L70 30 Z" fill="#dc2626"/>
|
||||||
|
<path d="M70 22 L76 26 L76 27 L70 23 Z" fill="#ef4444"/>
|
||||||
|
|
||||||
|
<!-- Staple exit slot -->
|
||||||
|
<rect x="72" y="28" width="4" height="2" fill="#1e293b"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/assets/swingline-hero.png
Normal file
BIN
src/assets/swingline-hero.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
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>
|
||||||
@ -5,7 +5,8 @@ template: splash
|
|||||||
hero:
|
hero:
|
||||||
tagline: "I was told there would be document extraction."
|
tagline: "I was told there would be document extraction."
|
||||||
image:
|
image:
|
||||||
file: ../../assets/stapler.svg
|
file: ../../assets/swingline-hero.png
|
||||||
|
alt: "Milton's Red Swingline Stapler"
|
||||||
actions:
|
actions:
|
||||||
- text: Get Started
|
- text: Get Started
|
||||||
link: /installation/
|
link: /installation/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user