Skip to content

Commit 4901176

Browse files
phernandezclaude
andcommitted
fix: rename create_project to create_memory_project for namespace isolation
Continue the namespace isolation effort by renaming the create_project tool to create_memory_project to avoid conflicts with other MCP servers. Changes: - Renamed @mcp.tool() decorator from 'create_project' to 'create_memory_project' - Updated all test references to use the new tool name - Tool functionality remains identical, only the name changed - Part of broader effort to ensure Basic Memory tools have unique namespaced names 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent bc3557f commit 4901176

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

src/basic_memory/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ def get_project_config(project_name: Optional[str] = None) -> ProjectConfig:
275275
return ProjectConfig(name=name, home=Path(path))
276276

277277
# otherwise raise error
278-
raise ValueError(f"Project '{actual_project_name}' not found") # pragma: no cover
278+
raise ValueError(f"Project '{actual_project_name}' not found") # pragma: no cover
279279

280280

281281
# Create config manager

src/basic_memory/mcp/tools/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@
4848
"sync_status",
4949
"view_note",
5050
"write_note",
51-
]
51+
]

src/basic_memory/mcp/tools/project_management.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ async def set_default_project(project_name: str, ctx: Context | None = None) ->
230230
return add_project_metadata(result, session.get_current_project())
231231

232232

233-
@mcp.tool()
233+
@mcp.tool("create_memory_project")
234234
async def create_project(
235235
project_name: str, project_path: str, set_default: bool = False, ctx: Context | None = None
236236
) -> str:
@@ -341,4 +341,4 @@ async def delete_project(project_name: str, ctx: Context | None = None) -> str:
341341
result += "Files remain on disk but project is no longer tracked by Basic Memory.\n"
342342
result += "Re-add the project to access its content again.\n"
343343

344-
return add_project_metadata(result, session.get_current_project())
344+
return add_project_metadata(result, session.get_current_project())

test-int/mcp/test_project_management_integration.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ async def test_create_project_basic_operation(mcp_server, app):
350350
async with Client(mcp_server) as client:
351351
# Create a new project
352352
create_result = await client.call_tool(
353-
"create_project",
353+
"create_memory_project",
354354
{
355355
"project_name": "test-new-project",
356356
"project_path": "/tmp/test-new-project",
@@ -382,7 +382,7 @@ async def test_create_project_with_default_flag(mcp_server, app):
382382
async with Client(mcp_server) as client:
383383
# Create a new project and set as default
384384
create_result = await client.call_tool(
385-
"create_project",
385+
"create_memory_project",
386386
{
387387
"project_name": "test-default-project",
388388
"project_path": "/tmp/test-default-project",
@@ -412,7 +412,7 @@ async def test_create_project_duplicate_name(mcp_server, app):
412412
async with Client(mcp_server) as client:
413413
# First create a project
414414
await client.call_tool(
415-
"create_project",
415+
"create_memory_project",
416416
{
417417
"project_name": "duplicate-test",
418418
"project_path": "/tmp/duplicate-test-1",
@@ -422,7 +422,7 @@ async def test_create_project_duplicate_name(mcp_server, app):
422422
# Try to create another project with same name
423423
with pytest.raises(Exception) as exc_info:
424424
await client.call_tool(
425-
"create_project",
425+
"create_memory_project",
426426
{
427427
"project_name": "duplicate-test",
428428
"project_path": "/tmp/duplicate-test-2",
@@ -431,7 +431,7 @@ async def test_create_project_duplicate_name(mcp_server, app):
431431

432432
# Should show error about duplicate name
433433
error_message = str(exc_info.value)
434-
assert "create_project" in error_message
434+
assert "create_memory_project" in error_message
435435
assert (
436436
"duplicate-test" in error_message
437437
or "already exists" in error_message
@@ -446,7 +446,7 @@ async def test_delete_project_basic_operation(mcp_server, app):
446446
async with Client(mcp_server) as client:
447447
# First create a project to delete
448448
await client.call_tool(
449-
"create_project",
449+
"create_memory_project",
450450
{
451451
"project_name": "to-be-deleted",
452452
"project_path": "/tmp/to-be-deleted",
@@ -540,7 +540,7 @@ async def test_project_lifecycle_workflow(mcp_server, app):
540540

541541
# 1. Create new project
542542
create_result = await client.call_tool(
543-
"create_project",
543+
"create_memory_project",
544544
{
545545
"project_name": project_name,
546546
"project_path": project_path,
@@ -609,7 +609,7 @@ async def test_create_delete_project_edge_cases(mcp_server, app):
609609

610610
# Create project with special characters
611611
create_result = await client.call_tool(
612-
"create_project",
612+
"create_memory_project",
613613
{
614614
"project_name": special_name,
615615
"project_path": f"/tmp/{special_name}",
@@ -645,7 +645,7 @@ async def test_case_insensitive_project_switching(mcp_server, app):
645645
# Create a project with mixed case name
646646
project_name = "Personal-Project"
647647
create_result = await client.call_tool(
648-
"create_project",
648+
"create_memory_project",
649649
{
650650
"project_name": project_name,
651651
"project_path": f"/tmp/{project_name}",
@@ -709,7 +709,7 @@ async def test_case_insensitive_project_operations(mcp_server, app):
709709
# Create a project with capital letters
710710
project_name = "CamelCase-Project"
711711
create_result = await client.call_tool(
712-
"create_project",
712+
"create_memory_project",
713713
{
714714
"project_name": project_name,
715715
"project_path": f"/tmp/{project_name}",
@@ -809,7 +809,7 @@ async def test_case_preservation_in_project_list(mcp_server, app):
809809
# Create all test projects
810810
for project_name in test_projects:
811811
await client.call_tool(
812-
"create_project",
812+
"create_memory_project",
813813
{
814814
"project_name": project_name,
815815
"project_path": f"/tmp/{project_name}",
@@ -854,7 +854,7 @@ async def test_session_state_consistency_after_case_switch(mcp_server, app):
854854
# Create a project with specific case
855855
project_name = "Session-Test-Project"
856856
await client.call_tool(
857-
"create_project",
857+
"create_memory_project",
858858
{
859859
"project_name": project_name,
860860
"project_path": f"/tmp/{project_name}",
@@ -899,4 +899,4 @@ async def test_session_state_consistency_after_case_switch(mcp_server, app):
899899

900900
# Clean up
901901
await client.call_tool("switch_project", {"project_name": "test-project"})
902-
await client.call_tool("delete_project", {"project_name": project_name})
902+
await client.call_tool("delete_project", {"project_name": project_name})

0 commit comments

Comments
 (0)