Paul Hernandez
3ee30e1f36
fix: project cli commands and case sensitivity when switching projects ( #130 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-11 16:09:53 -05:00
phernandez
35884ef3a7
fix: update MCP tool/prompt/resource calls to use .fn attribute
...
FastMCP library changes now require calling decorated functions via the .fn attribute:
- Tools: @mcp.tool() functions return FunctionTool, call with tool.fn()
- Prompts: @mcp.prompt() functions return FunctionPrompt, call with prompt.fn()
- Resources: @mcp.resource() functions return FunctionResource, call with resource.fn()
Updated core files:
- view_note.py: read_note() → read_note.fn()
- read_note.py: search_notes() → search_notes.fn() (2 locations)
- tool.py: 6 MCP tool calls updated to use .fn
- recent_activity.py: recent_activity() → recent_activity.fn()
- project.py: project_info() → project_info.fn() with type ignore
Updated 100+ test files systematically to use .fn attribute and fixed mock targets.
All 869 tests now pass. Fixes view_note tool error in Claude Desktop.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-08 11:52:23 -05:00
phernandez
9a0e0bd82d
add view_note tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 16:30:09 -05:00
phernandez
117fa44ecf
fix project info stats tests
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 15:51:11 -05:00
phernandez
69d7610d47
test coverage 100%
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 13:07:20 -05:00
phernandez
f608cd13f1
add justfile instead of Makefile, add ignores to test coverage
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 12:26:31 -05:00
phernandez
2162ad57fe
all tests passing
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-05 11:13:40 -05:00
phernandez
ae3eeb0cc1
add tool prompting and doc updates for strict mode in edit/move, and sync_status tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 23:46:48 -05:00
phernandez
602c55fe90
only allow edit_note, move_note using strict identifier match
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 23:37:29 -05:00
phernandez
91bfe2dc92
add sync status tool
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 22:24:10 -05:00
phernandez
a3cae1064d
add background migration task and status tool/prompt
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 16:52:12 -05:00
phernandez
c5c70cb0f4
improve validation for memory:// urls, add examples to build_context
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-04 00:16:33 -05:00
phernandez
f64d5b2152
improve error messages for tools
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-03 23:12:59 -05:00
phernandez
69a625acd1
fix search escape issues, and empty forward reference resolving for entities
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-06-03 18:09:41 -05:00
phernandez
ac08a8d024
fix: update FastMCP initialization for API changes
...
- Remove deprecated auth_server_provider parameter
- Use auth parameter correctly with OAuthProvider instead of AuthSettings
- Fixes type error after dependency updates
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-06-03 09:08:17 -05:00
Paul Hernandez
634486107b
feat: v0.13.0 pre ( #122 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-03 01:00:40 -05:00
bm-claudeai
020957cd76
feat: Multi-project support, OAuth authentication, and major improvements ( #119 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-05-25 10:07:34 -05:00
phernandez
3c1cc346df
fix: modify recent_activity args to be strings instead of enums
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-04-17 10:56:46 -05:00
Amadeusz Wieczorek
54dfa08aba
Update name of function search_notes in error output ( #92 )
...
Signed-off-by: Amadeusz Wieczorek <git@amadeusw.com >
2025-04-14 11:06:15 -05:00
Paul Hernandez
78a3412bcf
fix: run migrations and sync when starting mcp ( #88 )
2025-04-07 17:45:26 -05:00
Paul Hernandez
617e60bda4
feat: permalink enhancements ( #82 )
...
- Avoiding "useless permalink values" for files without metadata
- Enable permalinks to be updated on move via config setting
2025-04-06 14:54:59 -05:00
Paul Hernandez
248214cb11
fix: set default mcp log level to ERROR ( #81 )
2025-04-05 22:27:29 -05:00
github-actions[bot]
9d581cee13
fix: [BUG] Cursor has errors calling search tool ( #78 )
2025-04-05 19:12:23 -05:00
Paul Hernandez
b27827671d
feat: rename search tool to search_notes ( #66 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-28 19:11:35 -05:00
phernandez
731b502d36
docs: add help docs to mcp cli tools
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-25 13:01:11 -05:00
phernandez
b35037eb86
fix broken merge
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-24 23:18:22 -05:00
phernandez
b667bca5a2
fix test coverage and type checks
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-24 22:46:47 -05:00
phernandez
9c791259a0
\fix: improve tags handling in write_note tool to fix #38\n\nThis change makes the write_note tool more flexible with tag inputs by:\n1. Adding a parse_tags helper function to handle various input formats\n2. Removing explicit type annotation from the write_note signature\n3. Adding documentation on how to pass tags from external MCP clients\n4. Adding a test that reproduces the issue from bug report #38\n\nThe issue occurred in external MCP clients like Cursor where the tags\nparameter was causing type mismatch errors.\n\n\ud83e\udd16 Generated with [Claude Code]( https://claude.ai/code )\n\nCo-Authored-By: Claude <noreply@anthropic.com>\
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-24 22:46:47 -05:00
phernandez
cc2cae72c1
fix: move ai_assistant_guide.md into package resources to fix #39
...
This change relocates the AI assistant guide from the static directory
into the package resources directory, ensuring it gets properly included
in the distribution package and is accessible when installed via pip/uv.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-24 22:46:47 -05:00
phernandez
0ade6b0603
\fix: improve tags handling in write_note tool to fix #38\n\nThis change makes the write_note tool more flexible with tag inputs by:\n1. Adding a parse_tags helper function to handle various input formats\n2. Removing explicit type annotation from the write_note signature\n3. Adding documentation on how to pass tags from external MCP clients\n4. Adding a test that reproduces the issue from bug report #38\n\nThe issue occurred in external MCP clients like Cursor where the tags\nparameter was causing type mismatch errors.\n\n\ud83e\udd16 Generated with [Claude Code]( https://claude.ai/code )\n\nCo-Authored-By: Claude <noreply@anthropic.com>\
2025-03-24 18:30:21 -05:00
phernandez
390ff9d31c
fix: move ai_assistant_guide.md into package resources to fix #39
...
This change relocates the AI assistant guide from the static directory
into the package resources directory, ensuring it gets properly included
in the distribution package and is accessible when installed via pip/uv.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-03-24 17:34:47 -05:00
Paul Hernandez
eb5e4ec6bd
fix: improve utf-8 support for file reading/writing ( #32 )
...
fixes #29
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-15 15:43:37 -05:00
Paul Hernandez
6a4bd54646
chore: Pre beta prep ( #20 )
...
fix: drop search_index table on db reindex
fix: ai_resource_guide.md path
chore: remove logfire
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-07 14:31:35 -06:00
Paul Hernandez
d2bd75a949
feat: add project_info tool ( #19 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-03-05 23:44:28 -06:00
Paul Hernandez
90d5754180
feat: Implement boolean search ( #18 )
2025-03-05 20:57:12 -06:00
Paul Hernandez
e6496df595
feat: Beta work ( #17 )
...
feat: Add multiple projects support
feat: enhanced read_note for when initial result is not found
fix: merge frontmatter when updating note
fix: handle directory removed on sync watch
2025-03-05 18:46:04 -06:00
Paul Hernandez
f8078cdd46
Fix: Beta testing fixes ( #16 )
...
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-28 20:23:53 -06:00
Paul Hernandez
093dab5f03
feat: Add enhanced prompts and resources ( #15 )
...
## Summary
- Add comprehensive documentation to all MCP prompt modules
- Enhance search prompt with detailed contextual output formatting
- Implement consistent logging and docstring patterns across prompt
utilities
- Fix type checking in prompt modules
## Prompts Added/Enhanced
- `search.py`: New formatted output with relevance scores, excerpts, and
next steps
- `recent_activity.py`: Enhanced with better metadata handling and
documentation
- `continue_conversation.py`: Improved context management
## Resources Added/Enhanced
- `ai_assistant_guide`: Resource with description to give to LLM to
understand how to use the tools
## Technical improvements
- Added detailed docstrings to all prompt modules explaining their
purpose and usage
- Enhanced the search prompt with rich contextual output that helps LLMs
understand results
- Created a consistent pattern for formatting output across prompts
- Improved error handling in metadata extraction
- Standardized import organization and naming conventions
- Fixed various type checking issues across the codebase
This PR is part of our ongoing effort to improve the MCP's interaction
quality with LLMs, making the system more helpful and intuitive for AI
assistants to navigate knowledge bases.
🤖 Generated with [Claude Code](https://claude.ai/code )
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-27 20:48:56 -06:00
Paul Hernandez
0d7b0b3d7e
feat: Add new canvas tool to create json canvas files in obsidian. ( #14 )
...
Add new `canvas` tool to create json canvas files in obsidian.
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-25 21:21:05 -06:00
Paul Hernandez
37a01b806d
feat: Incremental sync on watch ( #13 )
...
- incremental sync on watch
- sync non-markdown files in knowledge base
- experimental `read_resource` tool for reading non-markdown files in raw form (pdf, image)
2025-02-24 22:13:15 -06:00
phernandez
f5a7541da1
feat: add cli commands for mcp tools
2025-02-18 23:23:09 -06:00
phernandez
bc9ca0744f
fix: search query pagination params
2025-02-18 21:29:11 -06:00
phernandez
02f8e86692
feat: add pagination to read_notes
2025-02-18 20:42:19 -06:00
phernandez
0123544556
feat: add pagination to build_context and recent_activity
2025-02-18 20:22:35 -06:00
phernandez
00d23a5ee1
fix: add logfire spans to cli
2025-02-18 19:56:20 -06:00
phernandez
812136c8c2
fix: add logfire spans to cli
2025-02-18 19:08:46 -06:00
phernandez
3e8e3e8961
fix: add logfire instrumentation to tools
2025-02-18 18:52:09 -06:00
Paul Hernandez
0689e7a730
feat: return semantic info in markdown after write_note ( #11 )
...
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-17 23:33:11 -06:00
Paul Hernandez
39bd5ca08f
fix: Re do enhanced read note format ( #10 )
...
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-17 18:47:59 -06:00
phernandez
e0803734e6
fix: handle memory:// url format in read_note tool
2025-02-15 12:00:03 -06:00