DevLog
Allows pulling recent commits from a local Git repository into the DevLog journal as logged entries.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
DevLog
A local-first MCP (Model Context Protocol) server for keeping a personal engineering journal — and letting an AI assistant query, summarize, and draft from it.
Log what you worked on (by hand or pulled straight from git), then ask Claude to turn a week of entries into a standup update, a changelog, or retro notes.
This project exists as a hands-on, complete example of an MCP server that uses all three MCP primitives — tools, resources, and prompts — for real reasons, not just to check a box.
Why this exists
Most MCP demos only show tools. DevLog is small enough to read end-to-end in one sitting, but touches every primitive the protocol defines:
Primitive | What it means in MCP | What it means in DevLog |
Tool | A function the model can call to do something (model-controlled) | Log an entry, search entries, pull recent git commits into the log |
Resource | Read-only data addressed by a URI (app/user-controlled) | A day's entries, a project's rolling summary, a weekly stats digest |
Prompt | A reusable template a client can surface and fill with arguments | Draft a standup update, a changelog, or retro notes from logged entries |
Related MCP server: Learning MCP
Primitives
Tools
Tool | Description |
| Log a discrete piece of completed work |
| Search past entries by text, project, or date range |
| Parse |
Resources
URI | Description |
| Raw entries for a given day |
| Rolling summary of all activity on a project |
| Entry counts by project over the last 7 days |
Prompts
Prompt | Description |
| Turns the last 7 days of entries into a Yesterday/Today/Blockers update |
| Drafts a changelog section grouped by project |
| Generates a What went well / What didn't / Action items retro |
How it works
┌─────────────┐ stdio (JSON-RPC) ┌──────────────┐ SQLite ┌───────────┐
│ MCP Client │ ◄──────────────────────► │ server.py │ ◄─────────────► │ devlog.db │
│ (Claude) │ │ (this repo) │ └───────────┘
└─────────────┘ └──────┬───────┘
│
▼
local `git log`The server runs locally over stdio. Nothing leaves your machine except whatever the client (e.g. Claude) chooses to do with the text it gets back.
Setup
Requires Python 3.11+.
git clone <your-repo-url>
cd devlog
pip install -e .
python server.py # sanity check: starts and waits on stdioConnect it to Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"devlog": {
"command": "python",
"args": ["/absolute/path/to/devlog/server.py"]
}
}
}Restart Claude Desktop. You should see DevLog's tools, resources, and prompts available in the conversation.
Connect it to a local or self-hosted LLM
client.py is a small standalone MCP client that spawns server.py over
stdio and drives it from any OpenAI-compatible chat-completions backend —
llama.cpp's llama-server, Ollama, vLLM, or OpenAI's own API. It's the
tool-calling loop that Claude Desktop/Code provide for you, made explicit,
so DevLog isn't limited to Anthropic's clients.
Install the extra dependency (httpx) it needs:
pip install -e ".[client]"Then, with a backend already running — e.g. llama.cpp:
llama-server --jinja -m qwen2.5-7b-instruct-q4_k_m.gguf --port 8080
python client.py --model qwen2.5-7b-instructor against OpenAI's API:
python client.py --base-url https://api.openai.com/v1 --model gpt-4o --api-key sk-...This starts a REPL:
Connected. 3 DevLog tools available. Type 'tools' to see available tools. Type 'exit' to quit.
you> show the latest git activity for this repo--base-url defaults to http://127.0.0.1:8080/v1 (llama.cpp's default);
--api-key is only needed for backends that require one. Tool-calling
reliability depends on the model — it needs to support structured function
calling (Qwen2.5-Instruct and Llama 3.1 do; not every local model does),
and small models are more likely to guess at arguments (e.g. a placeholder
file path) instead of asking a clarifying question, which Claude tends to
do more reliably.
Inspect it directly
The official MCP Inspector is the fastest way to poke at the server without a full client:
npx @modelcontextprotocol/inspector python server.pyExample session
You: Log that I fixed the auth token refresh bug in the api project, tagged bugfix.
Claude: [calls add_entry] Logged.
You: Pull in today's commits from ~/code/api since yesterday.
Claude: [calls get_git_activity] Added 4 entries from git history.
You: Give me my standup update.
Claude: [uses weekly_standup prompt, reads devlog://entries/{date} resources]
Yesterday:
- Fixed auth token refresh bug (api)
- Merged rate-limiter PR (api)
Today:
- Continue auth work, start on session-timeout edge cases
Blockers:
- NoneProject structure
devlog/
├── server.py # MCP server entrypoint — registers tools/resources/prompts
├── client.py # standalone MCP client for local/self-hosted LLM backends
├── devlog/
│ ├── db.py # all SQLite access
│ ├── git_activity.py # git log parsing
│ ├── summarize.py # pure functions for resource/prompt output
│ └── schema.sql
├── tests/
├── pyproject.toml
├── CLAUDE.md # guidance for Claude Code working in this repo
├── PLAN.md # phased build plan
├── demo.md # log entries -> weekly_standup walkthrough
└── README.mdStatus
Phases 0-8 of PLAN.md are complete: all three tools, resources, and prompts are implemented and tested. See PLAN.md's stretch goals for optional follow-up work.
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Privacy-first work tracking with summaries, reports, coaching, and AI-ready long-term memory.
A self-hostable feed of reminders, learnings and work that Claude and ChatGPT can read and write
Project memory for every AI. Pick up where you left off in Claude, ChatGPT or Cursor, with a team.
Personal context for every AI: search, read, and write back to your private Markdown library.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to automatically log and manage conversation history with developers in structured markdown format. Provides powerful search and context suggestions to help AI understand project history and maintain continuity across sessions.41MIT
- FlicenseBqualityCmaintenanceEnables developers to record feature-based development processes and turn Git changes, AI conversations, token usage, technical decisions, and debugging attempts into structured Obsidian learning reviews.10-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to maintain a persistent developer logbook with notes, TODOs, reminders, code TODO scanning, and full-text search, while keeping all data local and optionally syncing with Obsidian.79 npm1MIT
- AlicenseNot gradedqualityBmaintenanceLets AI assistants read a per-project markdown log at session start and append decisions, bug fixes, current state, roadmap, and handoff notes, with ranked full-text search across all projects.MIT