Metadata-Version: 2.4
Name: summary-stack-obsidian-mcp-server
Version: 2026.4.10.1900
Summary: MCP Server for creating Summary Stack notes in local Obsidian vaults
Project-URL: Homepage, https://summarystack.ai
Project-URL: Repository, https://github.com/tomschreck/cannon-collective-nx
Author-email: Tom Schreck <tom@arta.ing>
License: MIT
Keywords: knowledge-management,mcp,model-context-protocol,notes,obsidian,summary-stack
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: fastmcp>=2.0.0
Requires-Dist: httpx<1.0,>=0.28.0
Requires-Dist: pydantic<3.0,>=2.12.0
Requires-Dist: pyyaml<7.0,>=6.0.0
Requires-Dist: summary-stack-mcp-core
Description-Content-Type: text/markdown

# Summary Stack Obsidian MCP Server

Local MCP server for writing Summary Stack notes to Obsidian vaults.

## Quick Start

### 1. Configure Claude Desktop or Claude Code

Add to your MCP settings:

**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "summary-stack-obsidian": {
      "command": "uvx",
      "args": ["--from", "summary-stack-obsidian-mcp-server", "summary-stack-obsidian-mcp"],
      "env": {
        "SUMMARY_STACK_API_URL": "https://api.summarystack.ai",
        "SUMMARY_STACK_API_KEY": "your-api-key-here",
        "SUMMARY_STACK_OBSIDIAN_LOCAL_VAULT_ROOT_PATH": "/Users/you/Obsidian/YourVault",
        "SUMMARY_STACK_TARGET_RELATIVE_FOLDER": "03_Resources/_parking_lot"
      }
    }
  }
}
```

**Claude Code** (settings.json):

```json
{
  "mcpServers": {
    "summary-stack-obsidian": {
      "command": "uvx",
      "args": ["--from", "summary-stack-obsidian-mcp-server", "summary-stack-obsidian-mcp"],
      "env": {
        "SUMMARY_STACK_API_URL": "https://api.summarystack.ai",
        "SUMMARY_STACK_API_KEY": "your-api-key-here",
        "SUMMARY_STACK_OBSIDIAN_LOCAL_VAULT_ROOT_PATH": "/Users/you/Obsidian/YourVault",
        "SUMMARY_STACK_TARGET_RELATIVE_FOLDER": "03_Resources/_parking_lot"
      }
    }
  }
}
```

### 2. Restart Claude Desktop/Code

The MCP server will be available after restart.

## Configuration

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `SUMMARY_STACK_API_URL` | Yes | Summary Stack API URL |
| `SUMMARY_STACK_API_KEY` | No | API key for authentication |
| `SUMMARY_STACK_OBSIDIAN_LOCAL_VAULT_ROOT_PATH` | Yes | Absolute path to your Obsidian vault root |
| `SUMMARY_STACK_TARGET_RELATIVE_FOLDER` | No | Relative path from vault root where notes are saved (default: vault root) |

### Example

```bash
SUMMARY_STACK_API_URL=https://api.summarystack.ai
SUMMARY_STACK_API_KEY=ss-prod-abc123
SUMMARY_STACK_OBSIDIAN_LOCAL_VAULT_ROOT_PATH=/Users/you/Obsidian/MyVault
SUMMARY_STACK_TARGET_RELATIVE_FOLDER=03_Resources/_parking_lot
```

Notes will be saved to: `/Users/you/Obsidian/MyVault/03_Resources/_parking_lot/{note-filename}.md`

## Overview

This MCP server runs on your machine and provides tools to:
- Create Summary Stack notes from URLs
- Write notes to your local Obsidian vault
- Search and query your Summary Stacks

## MCP Tools

| Tool | Description |
|------|-------------|
| `create_summary_stack` | Create a Summary Stack from a URL and save as an Obsidian note |
| `list_vault_stacks` | List Summary Stack notes in your local vault |
| `search_stacks` | Semantic search across your Summary Stacks |
| `get_stack` | Get details of a specific Summary Stack |
| `list_stacks` | List all your Summary Stacks from the API |
| `get_related_stacks` | Find related Summary Stacks |

## Alternative Installation

If you prefer to install globally instead of using uvx:

```bash
pip install summary-stack-obsidian-mcp-server
```

Then use this simpler config:

```json
{
  "mcpServers": {
    "summary-stack-obsidian": {
      "command": "summary-stack-obsidian-mcp",
      "env": {
        "SUMMARY_STACK_API_URL": "https://api.summarystack.ai",
        "SUMMARY_STACK_API_KEY": "your-api-key-here",
        "SUMMARY_STACK_OBSIDIAN_LOCAL_VAULT_ROOT_PATH": "/Users/you/Obsidian/YourVault",
        "SUMMARY_STACK_TARGET_RELATIVE_FOLDER": "03_Resources/_parking_lot"
      }
    }
  }
}
```

## Development

```bash
# Run the server locally
pnpm nx serve summary_stack_obsidian_mcp_server

# Test with MCP Inspector (interactive debugging)
pnpm nx inspect summary_stack_obsidian_mcp_server

# Run tests
pnpm nx test summary_stack_obsidian_mcp_server

# Run linter
pnpm nx lint summary_stack_obsidian_mcp_server

# Type check
pnpm nx typecheck summary_stack_obsidian_mcp_server
```

### Local Development Configuration

Create a `.env.local` file in the project directory:

```bash
# API Configuration
SUMMARY_STACK_API_URL=http://localhost:8019
SUMMARY_STACK_API_KEY=your-local-api-key

# Obsidian Vault Configuration
SUMMARY_STACK_OBSIDIAN_LOCAL_VAULT_ROOT_PATH=/path/to/your/vault
SUMMARY_STACK_TARGET_RELATIVE_FOLDER=03_Resources/_parking_lot
```

The `inspect` target will automatically load this file.
