Skip to main content

Installation

npm install -g seshat-mcp

Prerequisites

1

Ethereum Wallet

You need an Ethereum wallet with a small amount of ETH on Base L2 for attestation fees (~$0.001 per attestation).
Create a dedicated wallet for SESHAT. Never use your main wallet.
2

EAS Schema

Register your attestation schema on EAS (one-time setup). See Configuration for details.
3

Git Host Token

Generate an API token for your git host (GitHub, GitLab, or Forgejo) with read:repo scope.

Configuration

Create a .env file with your credentials:
# Blockchain (Required)
ETH_PRIVATE_KEY=0x...your_private_key...
EAS_SCHEMA_UID=0x...your_schema_uid...

# Git Host (Required)
GIT_HOST_API_URL=https://api.github.com
GIT_HOST_TOKEN=ghp_...your_token...

# Obsidian (Required for research certification)
OBSIDIAN_ROOT=/path/to/your/vault

# Database
DB_PATH=./data/seshat.db
Never commit your .env file. Add it to .gitignore.

MCP Client Setup

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
  "mcpServers": {
    "seshat": {
      "command": "seshat",
      "args": ["serve"],
      "env": {
        "ETH_PRIVATE_KEY": "0x...",
        "EAS_SCHEMA_UID": "0x...",
        "GIT_HOST_API_URL": "https://api.github.com",
        "GIT_HOST_TOKEN": "ghp_...",
        "OBSIDIAN_ROOT": "/path/to/vault"
      }
    }
  }
}

Claude Code

{
  "mcpServers": {
    "seshat": {
      "command": "npx",
      "args": ["seshat-mcp"],
      "env": {
        "ETH_PRIVATE_KEY": "0x...",
        "EAS_SCHEMA_UID": "0x..."
      }
    }
  }
}

First Steps

1. Check System Status

seshat status
Or via MCP:
Use the status tool to check SESHAT health
The status tool shows wallet balance, git host connectivity, and database statistics.

2. Initialize a Project

seshat init
This interactive wizard helps you configure:
  • Project ID and name
  • Local repository path
  • Obsidian vault subdirectory
  • Git host integration

3. Certify Research Notes

First, ensure your Obsidian notes have proper frontmatter:
---
project: my-project
date: 2026-01-16
hours: 2.5
class: S
status: reviewed
---
Then certify:
Use certify_research with project "my-project" and dry_run true
Always use dry_run: true first to preview what will be certified.

4. Seal a Merged PR

Use seal with project "my-project", type "pr", ref "42"
For a release:
Use bundle_release with project "my-project", tag "v1.0.0"
This creates:
  • *_source.zip - Complete source archive
  • RD_REPORT.md - R&D hours summary
  • PROOF_CHAIN.json - All attestation UIDs
  • MANIFEST.json - File hashes

What’s Next?