README.mdā¢7.37 kB
# analysis-mcp
A FastMCP server for critical thinking and multi-perspective analysis of current affairs.
**Uses the LLM-Orchestrator Pattern**: Tools return structured prompts for the calling LLM to execute, enabling **iterative complexity building** through prompt chaining.
## š§ Core Concept: Prompt Chaining for Complexity
Instead of doing one analysis, **chain operations** to build increasingly sophisticated insights:
```
1. deconstruct_claim("AI will replace jobs")
ā Get structured breakdown
2. chain_analysis(previous_output, "extract_assumptions")
ā Find hidden assumptions in your analysis
3. chain_analysis(previous_output, "identify_contradictions")
ā Spot tensions in the argument
4. chain_analysis(previous_output, "steelman_argument")
ā Build strongest version of the claim
5. chain_analysis(previous_output, "suggest_next_step")
ā Get recommendation for deeper analysis
```
Each step builds on the last, creating layered, sophisticated thinking.
## Features
**Core Analytical Tools:**
- `deconstruct_claim` - Break down claims into components
- `compare_positions` - Multi-perspective ideological analysis
- `apply_lens` - Analyze through 9 frameworks (historical, economic, etc.)
- `get_trace` - Retrieve previous analysis plans
**š Prompt Chaining Tools (NEW):**
- `apply_operation` - Apply 15+ analytical operations to any content
- `chain_analysis` - Chain operations on previous LLM outputs
- `list_available_operations` - Browse all available operations
**15+ Analytical Operations:**
*Deconstructive:*
- `extract_assumptions` - Find implicit/explicit assumptions
- `identify_contradictions` - Spot logical tensions
- `find_fallacies` - Detect rhetorical manipulation
*Constructive:*
- `steelman_argument` - Build strongest version
- `find_analogies` - Identify relevant precedents
- `extract_principles` - Derive universal patterns
*Synthetic:*
- `synthesize_perspectives` - Merge viewpoints
- `elevate_abstraction` - Raise to higher concepts
- `ground_in_specifics` - Add concrete examples
*Meta-analytical:*
- `identify_gaps` - Find missing elements
- `check_coherence` - Verify logical consistency
- `suggest_next_step` - Recommend next operation
*Transformative:*
- `convert_to_dialogue` - Reframe as Socratic dialogue
- `extract_counterfactuals` - Generate what-if scenarios
- `map_dependencies` - Chart logical dependencies
## Quick Start with Claude Desktop
1. **Install via uvx** (recommended):
Edit your Claude Desktop config file:
- **MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
Add this to the `mcpServers` section:
```json
{
"mcpServers": {
"analysis-mcp": {
"command": "uvx",
"args": [
"git+https://github.com/YOUR_USERNAME/analysis_mcp",
"analysis-mcp"
]
}
}
}
```
2. **Restart Claude Desktop**
3. **Verify installation**: Look for the š icon in Claude Desktop showing the analysis-mcp server is connected
## Alternative: Local Development Installation
If you want to modify the code or run it locally:
```bash
# Clone the repo
git clone https://github.com/YOUR_USERNAME/analysis_mcp.git
cd analysis_mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in editable mode
pip install -e ".[dev]"
# Run tests
pytest -v
# Run server directly (for testing)
python -m analysis_mcp.server
```
For local development in Claude Desktop, update your config to point to the local path:
```json
{
"mcpServers": {
"analysis-mcp": {
"command": "python",
"args": [
"-m",
"analysis_mcp.server"
],
"cwd": "/absolute/path/to/analysis_mcp",
"env": {
"PYTHONPATH": "/absolute/path/to/analysis_mcp/src"
}
}
}
}
```
## š Example Workflows
### Workflow 1: Deep Claim Analysis
```
1. "Analyze: AI will replace all jobs in 10 years"
ā deconstruct_claim()
ā Get: assumptions, evidence, implications
2. "Now extract the assumptions from that analysis"
ā chain_analysis(prev, "extract_assumptions")
ā Get: implicit assumptions revealed
3. "Find contradictions in those assumptions"
ā chain_analysis(prev, "identify_contradictions")
ā Get: logical tensions
4. "Steelman the strongest version"
ā chain_analysis(prev, "steelman_argument")
ā Get: most defensible claim
```
### Workflow 2: Multi-Lens Synthesis
```
1. apply_lens("Fed raises rates", "economic")
ā Economic analysis
2. apply_lens("Fed raises rates", "political")
ā Political analysis
3. apply_operation(both_outputs, "synthesize_perspectives")
ā Unified framework
4. chain_analysis(synthesis, "identify_gaps")
ā Find what's missing
```
### Workflow 3: Iterative Refinement
```
1. compare_positions("Climate policy")
ā Multi-perspective view
2. chain_analysis(output, "elevate_abstraction")
ā Broader systemic patterns
3. chain_analysis(output, "ground_in_specifics")
ā Concrete examples added
4. chain_analysis(output, "check_coherence")
ā Verify consistency
5. chain_analysis(output, "suggest_next_step")
ā AI recommends next operation
```
## š” Why This Approach?
**Traditional Analysis:** One-shot, limited depth
```
"Analyze X" ā Single output ā Done
```
**Chained Analysis:** Iterative, building complexity
```
"Analyze X"
ā deconstruct
ā extract assumptions
ā find contradictions
ā steelman argument
ā identify gaps
ā synthesize
= Deep, multi-layered understanding
```
**Benefits:**
- ā
**Build complexity incrementally** - Each operation adds a layer
- ā
**Provider-agnostic** - Works with any LLM
- ā
**No API keys needed** - Server never calls external LLMs
- ā
**Fully traceable** - Every step logged with trace_id
- ā
**Self-guided** - `suggest_next_step` operation recommends what to do next
- ā
**Composable** - Mix with other MCP tools (Wikipedia, web search, etc.)
## Available Lenses
- **historical** - Compare to precedents and patterns
- **economic** - Analyze resource flows and incentives
- **geopolitical** - Examine power balances and strategy
- **psychological** - Identify biases and manipulation
- **technological** - Explore tech's role and impact
- **sociocultural** - Analyze identity and narratives
- **philosophical** - Apply ethical frameworks
- **systems** - Map feedback loops and leverage points
- **media** - Deconstruct framing and agenda-setting
## Trace Storage
Analysis plans are logged to `~/.analysis_mcp/traces/` as JSON files. Each trace contains:
- `trace_id` - Unique identifier
- `tool` - Which tool was called
- `input` - Original parameters
- `outline` - Structured analysis plan
- `next_prompt` - The prompt for LLM execution
- `timestamp` - When it was created
Use `get_trace(trace_id)` to retrieve any previous analysis plan.
## Troubleshooting
**Server not connecting?**
- Verify `uvx` is installed: `pip install uvx`
- Check Claude Desktop logs (Help ā View Logs)
- Ensure your config JSON is valid
**Tools not appearing?**
- Restart Claude Desktop after config changes
- Check the š icon shows "analysis-mcp" as connected
## Contributing
Pull requests welcome! Please run tests before submitting:
```bash
pytest -v
```