Metadata-Version: 2.4
Name: iflow-mcp_fegis
Version: 2.0.0
Summary: MCP server for converting structured prompt configurations into validated tools with semantic memory.
Project-URL: Homepage, https://github.com/p-funk/fegis
Project-URL: Repository, https://github.com/p-funk/fegis
Project-URL: Issues, https://github.com/p-funk/fegis/issues
Author-email: Perry Golden <goldenp@ptology.com>
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: aiohttp>=3.12.13
Requires-Dist: fastjsonschema>=2.16.0
Requires-Dist: hatchling>=1.27.0
Requires-Dist: jsonschema>=4.24.0
Requires-Dist: loguru>=0.7.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic<3,>=2.5
Requires-Dist: pyyaml>=6.0
Requires-Dist: qdrant-client[fastembed]>=1.9.0
Requires-Dist: ruff>=0.11.13
Requires-Dist: typer>=0.9.0
Description-Content-Type: text/markdown

# Fegis

Fegis does 3 things:

1. **Easy to write tools** - Write prompts in YAML format. Tool schemas use flexible natural language instructions.
2. **Structured data from tool calls saved in a vector database** - Every tool use is automatically stored in Qdrant with full context.
3. **Search** - AI can search through all previous tool usage using semantic similarity, filters, or direct lookup.

## Quick Start

```bash
# Install uv
# Windows
winget install --id=astral-sh.uv -e

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone
git clone https://github.com/p-funk/fegis.git

# Start Qdrant
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant:latest
```

## Configure Claude Desktop

Update `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "fegis": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/fegis",
        "run",
        "fegis"
      ],
      "env": {
        "QDRANT_URL": "http://localhost:6333",
        "QDRANT_API_KEY": "",
        "COLLECTION_NAME": "fegis_memory",
        "EMBEDDING_MODEL": "BAAI/bge-small-en",
        "ARCHETYPE_PATH": "/absolute/path/to/fegis-wip/archetypes/default.yaml",
        "AGENT_ID": "claude_desktop"
      }
    }
  }
}
```

Restart Claude Desktop. You'll have 7 new tools available including SearchMemory.

## How It Works

### 1. Tools from YAML

```yaml
parameters:
  BiasScope:
    description: "Range of bias detection to apply"
    examples: [confirmation, availability, anchoring, systematic, comprehensive]
  
  IntrospectionDepth:
    description: "How deeply to examine internal reasoning processes"
    examples: [surface, moderate, deep, exhaustive, meta_recursive]
    
tools:
  BiasDetector:
    description: "Identify reasoning blind spots, cognitive biases, and systematic errors in AI thinking patterns through structured self-examination"
    parameters:
      BiasScope:
      IntrospectionDepth:
    frames:
      identified_biases:
        type: List
        required: true
      reasoning_patterns:
        type: List
        required: true
      alternative_perspectives:
        type: List
        required: true
```

### 2. Automatic Memory Storage

Every tool invocation gets stored with:
- Tool name and parameters used
- Complete input and output
- Timestamp and session context
- Vector embeddings for semantic search

### 3. SearchMemory Tool

```
"Use SearchMemory and find my analysis of privacy concerns"
"Use SearchMemory and what creative ideas did I generate last week?"  
"Use SearchMemory and show me all UncertaintyNavigator results"
"Use SearchMemory and search for memories about decision-making"
```

## Available Archetypes

- `archetypes/default.yaml` - Cognitive analysis tools (UncertaintyNavigator, BiasDetector, etc.)
- `archetypes/simple_example.yaml` - Basic example tools
- `archetypes/emoji_mind.yaml` - Symbolic reasoning with emojis
- `archetypes/slime_mold.yaml` - Network optimization tools
- `archetypes/vibe_surfer.yaml` - Web exploration tools

## Configuration

Required environment variables:
- `ARCHETYPE_PATH` - Path to YAML archetype file
- `QDRANT_URL` - Qdrant database URL (default: http://localhost:6333)

Optional environment variables:
- `COLLECTION_NAME` - Qdrant collection name (default: fegis_memory)
- `AGENT_ID` - Identifier for this agent (default: default-agent)
- `EMBEDDING_MODEL` - Dense embedding model (default: BAAI/bge-small-en)
- `QDRANT_API_KEY` - API key for remote Qdrant (default: empty)

## Requirements

- Python 3.13+
- uv package manager
- Docker (for Qdrant)
- MCP-compatible client

## License

MIT License - see LICENSE file for details.