SeaStar
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SeaStarSearch my vault and tell me what I decided about the vineyard irrigation project."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
β Sea-Star
A private, local-first AI agent with a MacOS menubar cockpit that lives in your Obsidian vault. One-click's ease. Nothing leaves your house.
β The Sea Star, 20th n 3rd, Dogpatch, SF, Ca, USA This cute snack also thanks Tom's drydock around the corner. As it was.
A sea star holds on tight to its rock and doesn't let go. Sea-Star does the same with your notes β and helps you find the right one.
Documentation
π§ SeaStar (Work in Progress)
Note: SeaStar is currently under active pre-alpha development. It is not yet ready for production use, and code architecture is subject to rapid change.
Four pages, one for wherever you're starting from. Start at the docs index if you're unsure.
I want to⦠| Read |
Understand what this is, in plain English (no jargon) | |
Connect Sea-Star to Osaurus / Claude Desktop / Cursor / TRAE | |
See every command, tool, setting and runtime | |
Fix something that's broken |
Related MCP server: obsidian-local-mcp
The problem
Right now you get to pick two of three:
Powerful local Harnesses (Opencode, Buzz, custom stacks) β but configuring them is a weekend of YAML and silent failures.
One-click agents (the frontier products) β but they're cloud, proprietary, and they read your notes.
Your Obsidian vault as the brain β but wiring Obsidian + a local model + an agent loop together is left as an exercise for the reader.
Sea-Star is an AI Cockpit and the missing third option: the zero-config, fully-local agent that treats your Obsidian vault as first-class memory, runs on whatever local model you already have, and plugs into whatever MCP host you already use.
What it is
Sea-Star is an MCP server that is also an MCP client. That sounds odd, but it's deliberate:
As an MCP server, it exposes one simple tool (
ask_seastar) to any host β Claude Desktop, Cursor, TRAE, whatever. That tool runs a full local agent loop.As an MCP client, it consumes other MCP servers β including the existing Obsidian ones β as its own tools.
The reasoning happens on your machine, against your model. The host is just a window.
Why it stays sovereign
Sea-Star talks to any OpenAI-compatible local inference endpoint. That means it works, unchanged, with:
Runtime | Default endpoint |
Osaurus |
|
Ollama |
|
LM Studio |
|
llama.cpp ( |
|
MLX ( |
|
oMLX |
|
vLLM |
|
Unsloth Studio |
|
Runtime-agnostic by contract. You never touch this layer again.
The focused setup: Osaurus + Unsloth Studio
I built Sea-star after thinking it would be cool for an Osaurus (my fave harness that week ) agent.. just to hop over to Unsloth studio and do some fine tuning It is runtime-agnostic on purpose β but if you want the specific pairing that inspired it, this is the one: Osaurus for the agent layer, Unsloth Studio for the model-and-skills layer, Sea-Star for the memory.
The two are complementary by nature. Osaurus is a Mac-native agent harness β it runs agents, loads skills, and speaks MCP both ways. Unsloth Studio is a model workbench β it runs and fine-tunes models and exposes an OpenAI-compatible API. Osaurus brings the doing; Unsloth brings the thinking; neither one knows about your notes. Sea-Star is the third leg: it gives them a shared, private memory in your Obsidian vault.
ββββββββββββββββββββββ MCP ββββββββββββββββ OpenAI-compatible ββββββββββββββββββββ
β Osaurus (agents) β ββββββββΆ β Sea-Star β βββββββββββββββββββββΆ β Unsloth Studio β
β skills, memory β ββββββββ β (memory) β βββββββββββββββββββββ β (local models) β
ββββββββββββββββββββββ ββββββββ¬ββββββββ ββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββ
β Obsidian vault β
ββββββββββββββββββββThe recipe (three moves):
Start the engine. In Unsloth Studio, launch the local server and copy its OpenAI-compatible base URL (the same kind of URL as Ollama's
β¦:11434/v1).Point Sea-Star at it. Put that URL and the model name in your
seastar.tomlunder[inference]β see Configuration below. That's the whole "Unsloth is the brain" step.Point Osaurus at Sea-Star. Add Sea-Star as an MCP server in Osaurus (the same
command/argsblock you'd add to Claude Desktop). Osaurus now has your vault as memory; its agents can ask Sea-Star what you already know.
Menu labels drift between versions of both apps β the concept is what matters: Unsloth serves an OpenAI-compatible endpoint, Sea-Star consumes it, Osaurus calls Sea-Star. If either app exposes a compatible endpoint, this works unchanged.
And if you'd rather use a different harness tomorrow β Buzz, Opencode Desktop, Deepseek Harness MacOS (omarchy soon .. ) β nothing above changes. That flexibility is the point.
Zero-download shortcut (macOS 26+). Osaurus ships AFM. Run
osaurus serve, and you can skip Unsloth entirely: Sea-Star autodetects Osaurus onhttp://127.0.0.1:1337/v1and usesfoundationas the brain. Two legs instead of three, and nothing to download.
Install
# Zero-install from source, if you have uv (recommended):
uvx --from git+https://github.com/Roqett/Sea-Star sea-star serve
# Or clone and run it locally:
git clone https://github.com/Roqett/Sea-Star
cd Sea-Star
uv sync
uv run sea-star serve
pip install seastar-mcplands with the first PyPI release. Until then, theuvx --from git+...form above is the one-liner to use.
Quickstart
# 1. Point Sea-Star at your Obsidian vault
sea-star init --vault "~/Documents/MyVault"
# 2. Check that it can see a local model
sea-star doctor
# 3. Run it as an MCP server (stdio)
sea-star serveThen add it to your MCP host of choice:
{
"mcpServers": {
"sea-star": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Roqett/Sea-Star", "sea-star", "serve"]
}
}
}Ask your host: "Ask Sea-Star what I decided about the vineyard irrigation project." Sea-Star searches your vault, reasons locally, and answers with citations to your own notes.
How you use it
Sea-Star has three ways to use it. Use any one on its own; they compose.
Way 1 β Ask your folder of notes from the terminal (the fastest way to feel it)
No host, no config file, no JSON. If a local model is running, this works:
sea-star ask "What did I decide about the vineyard irrigation project?"Sea-Star searches your vault, reads the matching notes, asks your local model, and
prints the answer with [[wikilinks]] back to the notes it used:
The Grenache bottling run is booked for the second week of February, and you should
order more corks before the McLaren Vale crush starts.
Sources: [[Cellar Notes]]That citation is the whole point. It isn't a chatbot guessing β it's your notes answering, and you can click straight through to the source.
The 60-second smoke test
# 1. Is a vault and a model in reach?
sea-star doctorVault: /Users/you/Documents/MyVault
Notes: 128
Runtime: osaurus -> http://127.0.0.1:1337/v1
Model: foundation
Available: foundation
Bridged MCP servers: none
Ready.If it says Ready, you're done. If it says No local inference server answered,
start your runtime (see the recipe above) or point Sea-Star at one in seastar.toml.
# 2. Ask something only your notes know
sea-star ask "Summarise what I wrote about <a real thing in your vault>"If step 2 returns a cited answer, the vault, the model, and the agent loop are all proven. That's the test.
Way 2 β Put Sea-Star behind your agent harness (MCP server)
This is the "Osaurus gets your memory" move. Register Sea-Star as an MCP server:
{
"mcpServers": {
"sea-star": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Roqett/Sea-Star", "sea-star", "serve"]
}
}
}Osaurus β Settings βΊ Tools βΊ Connections βΊ add the block above. Osaurus then exposes one tool,
ask_seastar, to its agents.Opencode Desktop / Cursor / TRAE work β the same block, in the app's
mcpServersconfig.
Now any agent in the host can ask "what do I already know about X?" and get your vault's answer, locally.
The full walkthrough β exact menu paths, config file locations, and the instruction to give the host's agents β lives in docs/connect.md.
Way 3 β Let Sea-Star borrow other MCP servers (MCP client)
Sea-Star can consume other MCP servers and offer their tools to your model. In
seastar.toml:
[[mcp.servers]]
name = "obsidian"
command = "npx"
args = ["-y", "obsidian-mcp", "/Users/you/Documents/MyVault"]Restart, and Sea-Star's agent loop can call obsidian__* tools alongside its own vault
tools. That's how you give the agent more to work with.
Which do I start with?
Start with Way 1 (sea-star ask) β it's the honest test. Then wire Way 2 into
Osaurus, and add Way 3 only when you want a second tool source.
Configuration
Sea-Star is zero-config by default: it auto-detects common local runtimes and
finds your Obsidian vault straight from Obsidian's own obsidian.json, so for most
people sea-star serve just works with no setup at all.
If you want to pin things down, sea-star init --vault <path> writes a seastar.toml
into your vault. Sea-Star also reads ./seastar.toml from the working directory and
~/.config/seastar/config.toml. Resolution order is: explicit path β SEASTAR_*
environment variables β config file β autodetection β a loud failure.
# <your-vault>/seastar.toml
vault = "/Users/you/Documents/MyVault"
[inference]
# Leave base_url empty to let Sea-Star autodetect a local runtime on startup.
base_url = "http://127.0.0.1:11434/v1" # any OpenAI-compatible endpoint
model = "qwen2.5:7b-instruct"
api_key = "seastar-local" # local runtimes ignore this
max_steps = 8
temperature = 0.2
# Consume other MCP servers (e.g. an Obsidian MCP) as Sea-Star's own tools.
[[mcp.servers]]
name = "obsidian"
command = "npx"
args = ["-y", "obsidian-mcp", "/Users/you/Documents/MyVault"]Heads up: a
seastar.tomlcan hold a realapi_key. If your vault is under version control or cloud sync, addseastar.tomlto your.gitignoreso it doesn't get committed or shared.
How it works
ββββββββββββββββββββ MCP (stdio) βββββββββββββββββββββββββββββββ
β Your MCP host β ββββββββββββββββββββββββΆ β SEA-STAR β
β (Claude/Cursor) β ask_seastar(question) β βββββββββββββββββββββββββ β
ββββββββββββββββββββ ββββββββββββββββββββββββ β β agent loop β β
β β plan β tool β answer β β
β ββββββββββββ¬βββββββββββββ β
β β β
ββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββΌββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β Local model β β Obsidian vault β β other MCP β
β (any OpenAI- β β (your notes, β β servers you β
β compatible) β β as memory) β β configure β
ββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
β²
β everything above this line runs on YOUR machine
ββββββ΄βββββββββββββββββββββββββ no cloud. no telemetry. ββββββββββββββββββββββProject layout
src/sea_star/
cli.py # `sea-star init | doctor | serve | ask`
config.py # config + runtime/vault autodetection
inference.py # runtime-agnostic OpenAI-compatible adapter
vault.py # Obsidian vault index, search, read/write, citation
tools.py # built-in tools (vault search/read/write/list)
agent.py # the agent loop (plan β tool call β answer)
mcp_server.py # exposes the agent over MCP
mcp_client.py # consumes other MCP servers as toolsRoadmap
Runtime-agnostic inference adapter
Vault search / read / write with citations
Agent loop + MCP server + MCP client
Semantic (embedding) recall over the vault
.mcpbone-click Desktop Extension"Which local models actually work with MCP" conformance table
The name
There's a bar called The Sea Star at 20th n 3rd, in the Dogpatch district of San Francisco. I stone's throw from the birthplace of GPT some 30 years later. The Builder spent some time there ( with a qwirky Grey timberwolf)..a long time ago. The Sea-stars in South Australia 's Spencer Gulf are just as colourful and EVERY single one : TOTALLY unique
That's the spirit. A sea star holds on tight to its rock and doesn't let go. Those arms (or legs ) are independent, but connected : Sea-Star does the same with your notes and lets you know the big picture.
Contributing
Issues and PRs welcome β especially conformance reports ("Sea-Star worked with model X on runtime Y"). This project is designed to be maintained.
License
MIT Β© Roqett / Up Periscope
Built by an Oz winemaker who as a lad bought a Sinclair Spectrum 16K (but only got as far as trying to copy "blue Monday ' in BASIC )..timewarp to pulling the pin after vintage 2025, upgraded to a M4pro Mini 64GB, and relearnt to build. an Indy-dev build is a lot like a mini vintage. Learnt in public.
On the advice of the late Hunter S. Thompson β who said he hated recommending drugs, alcohol, or insanity to anyone... but admitted they'd always worked for him β we took the parts worth keeping: no dangerous drugs, only high-quality alcohol, no propellant weapons. Mostly Swift, Python, sometimes Rust, mainly Swift.
This server cannot be deployed
Maintenance
Related MCP Connectors
Self-hosted AI workspace: semantic RAG document search, long-term memory, and AI chat via MCP.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
- LogRackOAuthai.lograck
Shared memory for your AI tools: tasks, notes and context every tool can read and write over MCP.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceTurns your Obsidian vault into an MCP-enabled workspace with tools for reading/writing notes, managing folders, running semantic searches, and maintaining long-term memoryβall while keeping data local to your vault.148,054 npm159MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server that wraps the Obsidian CLI to give AI assistants direct access to read, edit, and manage notes within an Obsidian vault. It enables advanced operations such as frontmatter property management, context-aware searching, and the execution of internal Obsidian commands.2MIT
- AlicenseAqualityBmaintenanceMCP server that exposes a local Obsidian vault as persistent, searchable memory for AI agents, with hybrid retrieval, reranker, and PDF support.34477 npm34MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read and search your Obsidian vault through a local MCP server, keeping everything private and local.Apache 2.0