Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Local-first Ownly evidence and repeatable Planner visits with preview-before-commit writes.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OWNLY_DATA_DIR, OWNLY_MCP_ALLOW_WRITE, OPENROUTESERVICE_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"ownly": {
"command": "npx",
"args": [
"-y",
"@ownly-app/mcp"
],
"env": {
"OWNLY_DATA_DIR": "your-value",
"OWNLY_MCP_ALLOW_WRITE": "your-value",
"OPENROUTESERVICE_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add ownly --env OWNLY_DATA_DIR=your-value --env OWNLY_MCP_ALLOW_WRITE=your-value --env OPENROUTESERVICE_API_KEY=your-value -- npx -y @ownly-app/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ownly": {
"command": "npx",
"args": [
"-y",
"@ownly-app/mcp"
],
"env": {
"OWNLY_DATA_DIR": "your-value",
"OWNLY_MCP_ALLOW_WRITE": "your-value",
"OPENROUTESERVICE_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"ownly": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ownly-app/mcp"
],
"env": {
"OWNLY_DATA_DIR": "your-value",
"OWNLY_MCP_ALLOW_WRITE": "your-value",
"OPENROUTESERVICE_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
OWNLY_MCP_ALLOW_WRITE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account liuh886, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: OWNLY_DATA_DIR, OPENROUTESERVICE_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.7.1) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Tool Guardian
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Too many MCP servers eating your context? A router that loads each tool's schema only when needed.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Own less, Live more, Decide better.
中文文档
A local-first ownership memory and decision ledger.
Ownly helps you record what you own, what it costs, how you used it, and what you learned. Personal data stays in an Ownly data folder as plain Markdown with YAML frontmatter.
Ownly doesn't host your data. You choose where your files live.
The Ownly data folder can live in a normal local directory or inside a local folder synchronized by a personal cloud provider you control. Obsidian is useful for inspecting the Markdown, but it is not required for the hosted Web app, installed PWA, Agent CLI, or local MCP server.
| Entry point | Obsidian required? | Local process required? | Best for |
|---|---|---|---|
| GitHub Pages Web app | No | No | Immediate use in a supported desktop browser |
| Installed PWA | No | No | A standalone app window with offline application-shell startup |
| Obsidian plugin | Yes | No | Native Vault integration and direct Markdown work |
| Agent CLI | No | Yes | Deterministic scripting and validated local mutations |
| Local MCP | No | Yes | Bounded reads plus opt-in, preview-before-commit maintenance for compatible agents |
The Web app and PWA are the same browser runtime. Installation changes the launch experience, not the data model. The product homepage itself is not a PWA surface.
When Ownly starts without an existing folder permission, choose a storage location and then create new data or open an existing Ownly data folder.
Choose a normal local filesystem folder. Ownly reads and writes that folder directly. Nothing is synchronized unless you configure synchronization outside Ownly.
Choose a local folder already synchronized by Dropbox, Google Drive, OneDrive, iCloud Drive, or another provider you control.
Ownly still works with normal local files. It does not use provider APIs, OAuth, provider credentials, an Ownly cloud mirror, or a separate remote filesystem. Your provider handles synchronization under its own privacy and security policies.
Keep the folder available offline when the provider supports online-only placeholders, and use one sync provider per Ownly data folder to reduce conflicting copies.
Select a parent location such as Documents, an Obsidian Vault root, a local personal-cloud folder, or an empty folder already named Ownly.
Ownly initializes:
Ownly/
Objects/ Accounts/ Snapshots/ Reviews/ Trips/ Trip Places/ Trip Visits/ Trip Legs/ Trip Expenses/ Logs/ Object Experiences/ Archive/ Objects/ Accounts/ Snapshots/ Reviews/ Object Logs/
If the selected folder is already named Ownly, Ownly uses it directly and does not create Ownly/Ownly.
Select any supported filesystem location:
Objects/;Ownly;Ownly/ child folder;The browser asks for explicit read/write permission. Personal Markdown files are not uploaded to GitHub Pages and are not copied into the PWA service-worker cache. If the selected folder is synchronized by a third-party provider, that provider may upload and synchronize those files independently of Ownly.
The hosted Web/PWA runtime uses Google Analytics 4 measurement ID G-KXXVS33FQ2 for product adoption and can also load Cloudflare Web Analytics for aggregate traffic and Web Vitals when NEXT_PUBLIC_CLOUDFLARE_WEB_ANALYTICS_TOKEN is configured at build time. Ownly custom analytics events never include Markdown contents, local file names, form values, object records, reviews, account snapshots, selected-folder data, local paths, inferred provider names, or MCP tool results. The Obsidian plugin, Agent CLI and MCP runtime do not load either web analytics provider.
Standalone local use:
<My local folder>/
Ownly/ Objects/ Accounts/ Snapshots/ Reviews/ Trips/ Trip Places/ Trip Visits/ Trip Legs/ Trip Expenses/ Logs/ Archive/
Inside an Obsidian Vault:
<My Obsidian Vault>/
Ownly/ Objects/ Accounts/ Snapshots/ Reviews/ Trips/ Trip Places/ Trip Visits/ Trip Legs/ Trip Expenses/ Logs/ Archive/
Inside a personal cloud-synced local folder:
<My Dropbox / Google Drive / OneDrive / iCloud Drive folder>/
Ownly/ Objects/ Accounts/ Snapshots/ Reviews/ Trips/ Trip Places/ Trip Visits/ Trip Legs/ Trip Expenses/ Logs/ Archive/
All three layouts use the same Ownly data model. The personal-cloud option does not introduce a second storage backend; the external provider synchronizes the normal filesystem folder.
| Record | Purpose |
|---|---|
| Physical item | Purchase, use, cost, condition, retirement, transfer, or discard lifecycle |
| Recurring cost | Subscription or other repeating obligation, billing cycle, status, and annualized cost |
| One-time experience | Plan, budget, actual cost, location, completion, and review |
| Snapshot | Point-in-time net-worth and account-balance facts |
| Review | Structured post-use, post-exit, monthly, or annual reflection |
| Object experience log | Append-only usage, issue, maintenance, regret, lesson, comparison, or exit event |
Ownly exposes deterministic JSON read/write commands for scripts and external agents. It does not include model APIs, embeddings, AI chat, or generated recommendations.
export OWNLY_VAULT=/path/to/location-containing-Ownly
npm run --silent ownly -- object list --json
npm run --silent wyqd -- object list --json npm run --silent wyqd -- object get --id --json npm run --silent wyqd -- object history --id --json npm run --silent wyqd -- object review-needed --json npm run --silent wyqd -- recurring list --active --json npm run --silent wyqd -- summary --json
See:
The CLI data location may point to an Obsidian Vault or another filesystem location containing the Ownly data folder, including a user-controlled synchronized local folder.
Ownly also exposes a local-first MCP server for Codex, Claude Code and other MCP clients that can start a local STDIO process. It is read-only by default; persistent mutations require explicit startup permission plus a separate preview and commit call.
The MCP server is an adapter over the same validated Ownly data model. It does not create a second database, hosted mirror or embedded AI assistant.
The MCP tool surface covers:
The source-of-truth stays in the user-selected Ownly data folder. Facts returned by an MCP tool can enter the connected external agent's context, so Ownly does not claim that every selected fact remains on-device during an agent session.
Install it with npx -y @ownly-app/mcp --data-dir (source in packages/mcp). See the Ownly MCP Guide for Codex and Claude Code setup, privacy boundaries and example prompts.
| Area | Status |
|---|---|
| Product homepage | Static bilingual product explanation with an embedded interactive preview |
| Hosted Web app | Static GitHub Pages runtime with user-selected filesystem access |
| Installed PWA | App-route-only install surface, standalone launch and cached app shell |
| Obsidian plugin | Native Vault interface over the shared Ownly data model |
| Agent CLI | Stable, strict-typed fact-ready JSON contract |
| Local MCP | Read-only by default; opt-in two-phase writes over the canonical Ownly evidence store |
| Data storage | Plain Markdown + YAML frontmatter in a user-controlled filesystem folder |
| Mutation safety | Validation, preview/commit confirmation, atomic writes, safety backups, audit logs, conflict detection, archive/restore, and CI contracts |
Current validation and known coverage gaps are documented in Quality Baseline.
Direct folder access uses the File System Access API.
See Web Runtime for privacy boundaries, PWA behavior, and deployment details.
Install from Obsidian Community Plugins:
👉 [Install Ownly](https://obsidian.md/plugins?id=ownly)
The plugin is optional for Web/PWA users. Use the term Obsidian Vault only for a real Vault or the Obsidian runtime; the cross-runtime storage term is Ownly data folder.
Ownly includes deterministic Doctor checks for issues such as:
The
Only the beginning is shown; read the rest in the repo