New `memwalk mcp` subcommand starts a stdio MCP server exposing four tools: ask, standup, status, update. The underlying memba Session is loaded lazily on the first call that needs the model, then reused for the lifetime of the process — first query ~2s, subsequent <500ms. - memwalk/mcp_server.py — Server + tool list/dispatch using mcp SDK - memwalk/cli.py — `memwalk mcp` subcommand wires it up - pyproject.toml — mcp>=1.0.0 dependency - README.md — setup instructions for Claude Code and opencode Verified locally: tools/list returns all 4, tools/call status returns the expected JSON without loading the model. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
54 lines
1.3 KiB
TOML
54 lines
1.3 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "memwalk"
|
|
version = "0.1.0"
|
|
description = "Walk through your work memory — semantic recall of git, shell and notes via local SSM models"
|
|
readme = "README.md"
|
|
license = { text = "MIT" }
|
|
requires-python = ">=3.10"
|
|
|
|
keywords = ["llm", "memory", "ssm", "mamba", "nemotron", "memba", "personal-ai", "cli"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Utilities",
|
|
]
|
|
|
|
dependencies = [
|
|
"memba>=0.1.0",
|
|
"typer>=0.9.0",
|
|
"rich>=13.0.0",
|
|
"mcp>=1.0.0",
|
|
"tomli>=2.0;python_version<'3.11'",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=7.0", "ruff", "mypy"]
|
|
|
|
[project.scripts]
|
|
memwalk = "memwalk.cli:main"
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/emil28092005/memwalk"
|
|
Repository = "https://github.com/emil28092005/memwalk"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["memwalk*"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "W", "I"]
|
|
ignore = ["E501"]
|