104 lines
3.3 KiB
Markdown
104 lines
3.3 KiB
Markdown
# Hermes MCP Server — Leonard Profile
|
|
|
|
Direct MCP endpoint for Grok (or any MCP client) to connect to Hermes/Leonard's tools.
|
|
|
|
## Connection Info
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| **Endpoint** | `http://74.208.111.99:8092/mcp` |
|
|
| **Protocol** | MCP over HTTP SSE (StreamableHTTP) |
|
|
| **Profile** | leonard |
|
|
| **Status** | ✅ Live |
|
|
|
|
## How Grok Connects
|
|
|
|
Configure Grok's MCP client with the following:
|
|
|
|
```yaml
|
|
# In Grok's MCP config (e.g., config.yaml, agent config, or CLI flag):
|
|
mcp_servers:
|
|
hermes-leonard:
|
|
url: "http://74.208.111.99:8092/mcp"
|
|
# No auth token needed — local network
|
|
# Optional: add a timeout if connection is slow
|
|
timeout: 120
|
|
connect_timeout: 60
|
|
```
|
|
|
|
Or via CLI if Grok supports direct MCP URL attachment:
|
|
|
|
```
|
|
--mcp-url http://74.208.111.99:8092/mcp
|
|
```
|
|
|
|
## Available Tools (7)
|
|
|
|
| Tool | What It Does |
|
|
|------|-------------|
|
|
| `read_file` | Read any text file on the server by absolute path |
|
|
| `search_files` | Search file contents with regex or glob patterns |
|
|
| `list_directory` | List files and directories at a given path |
|
|
| `git_log` | View recent git commit history in any repo |
|
|
| `gitea_read_file` | Read a file from Gitea (any org/repo) directly via API |
|
|
| `gitea_list_repos` | List all repos in a Gitea organization |
|
|
| `run_shell` | Execute shell commands (read-only ops suggested) |
|
|
|
|
## What Grok Can Do With This
|
|
|
|
- **Read** any file in the personal-agent-os repo, chess-project, or any Gitea repo
|
|
- **Search** across all files for patterns, tags, or keywords
|
|
- **Check git history** — see who committed what and when
|
|
- **List repos** — discover what's available in Tony_tech and Ty_Tech
|
|
- **Run shell commands** — inspect system state, check services, run npm builds
|
|
|
|
## Host Details
|
|
|
|
| Detail | Value |
|
|
|--------|-------|
|
|
| Server IP | `74.208.111.99` |
|
|
| Port | `8092` |
|
|
| Localhost | `http://localhost:8092/mcp` |
|
|
| Network | Open on `0.0.0.0:8092` — accessible from same network |
|
|
| Runtime | systemd user service: `hermes-mcp-leonard` |
|
|
| Auto-start | ✅ Enabled — starts on boot |
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
# Health check
|
|
curl http://74.208.111.99:8092/health
|
|
|
|
# List available tools
|
|
curl http://74.208.111.99:8092/tools
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
Grok ──MCP/SSE──→ Hermes MCP Server (:8092) ──→ Hermes Tools
|
|
│
|
|
┌──────────────────────────┘
|
|
▼
|
|
Gitea MCP (:8081) ──→ Gitea Instance
|
|
Local Filesystem
|
|
Shell / System
|
|
```
|
|
|
|
## Security Notes
|
|
|
|
- No authentication on the MCP endpoint (local/internal network)
|
|
- `run_shell` is exposed — only connect trusted clients (Grok)
|
|
- All Gitea reads go through the public API (no token needed for public repos)
|
|
- To add auth, wrap the endpoint behind an nginx reverse proxy with basic auth
|
|
|
|
## Troubleshooting
|
|
|
|
**"Connection refused"** — the server may have been restarted. Run:
|
|
```bash
|
|
systemctl --user restart hermes-mcp-leonard
|
|
```
|
|
|
|
**"Tool not found"** — ensure the MCP client is using SSE transport, not stdio. The endpoint must be accessed as an HTTP SSE stream.
|
|
|
|
**Slow responses** — increase `timeout` to 180s in the MCP client config for long running commands. |