Skip to content

Commit 70fda80

Browse files
committed
fix: resolve MCP-Hub tool validation errors for project management functions
- Renamed list_projects() to list_memory_projects() - Renamed create_project() to create_memory_project() - Updated imports and exports accordingly - Fixed test environment variable isolation Fixes #190 Signed-off-by: Drew Cain <groksrc@gmail.com>
1 parent 3f70f5e commit 70fda80

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

src/basic_memory/mcp/tools/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,24 @@
1818
from basic_memory.mcp.tools.edit_note import edit_note
1919
from basic_memory.mcp.tools.move_note import move_note
2020
from basic_memory.mcp.tools.project_management import (
21-
list_projects,
21+
list_memory_projects,
2222
switch_project,
2323
get_current_project,
2424
set_default_project,
25-
create_project,
25+
create_memory_project,
2626
delete_project,
2727
)
2828

2929
__all__ = [
3030
"build_context",
3131
"canvas",
32-
"create_project",
32+
"create_memory_project",
3333
"delete_note",
3434
"delete_project",
3535
"edit_note",
3636
"get_current_project",
3737
"list_directory",
38-
"list_projects",
38+
"list_memory_projects",
3939
"move_note",
4040
"read_content",
4141
"read_note",

src/basic_memory/mcp/tools/project_management.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
from basic_memory.schemas.project_info import ProjectList, ProjectStatusResponse, ProjectInfoRequest
1717

1818

19-
@mcp.tool()
20-
async def list_projects(ctx: Context | None = None) -> str:
19+
@mcp.tool("list_memory_projects")
20+
async def list_memory_projects(ctx: Context | None = None) -> str:
2121
"""List all available projects with their status.
2222
2323
Shows all Basic Memory projects that are available, indicating which one
@@ -27,7 +27,7 @@ async def list_projects(ctx: Context | None = None) -> str:
2727
Formatted list of projects with status indicators
2828
2929
Example:
30-
list_projects()
30+
list_memory_projects()
3131
"""
3232
if ctx: # pragma: no cover
3333
await ctx.info("Listing all available projects")
@@ -186,8 +186,8 @@ async def set_default_project(project_name: str, ctx: Context | None = None) ->
186186
return add_project_metadata(result, session.get_current_project())
187187

188188

189-
@mcp.tool()
190-
async def create_project(
189+
@mcp.tool("create_memory_project")
190+
async def create_memory_project(
191191
project_name: str, project_path: str, set_default: bool = False, ctx: Context | None = None
192192
) -> str:
193193
"""Create a new Basic Memory project.
@@ -204,8 +204,8 @@ async def create_project(
204204
Confirmation message with project details
205205
206206
Example:
207-
create_project("my-research", "~/Documents/research")
208-
create_project("work-notes", "/home/user/work", set_default=True)
207+
create_memory_project("my-research", "~/Documents/research")
208+
create_memory_project("work-notes", "/home/user/work", set_default=True)
209209
"""
210210
if ctx: # pragma: no cover
211211
await ctx.info(f"Creating project: {project_name} at {project_path}")

tests/mcp/test_server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def test_create_auth_config_supabase_provider_missing_anon_key(self):
9393
# Missing SUPABASE_ANON_KEY
9494
}
9595

96-
with patch.dict(os.environ, env_vars):
96+
with patch.dict(os.environ, env_vars, clear=True):
9797
with pytest.raises(ValueError, match="SUPABASE_URL and SUPABASE_ANON_KEY must be set"):
9898
create_auth_config()
9999

0 commit comments

Comments
 (0)