63 Commits

Author SHA1 Message Date
Daniel Bauer
f6bfb14b29 feat: bump version v1.2.1 2025-12-02 13:28:23 +01:00
Daniel Bauer
9c9594367c feat: add log level configuration and validation 2025-12-02 13:26:20 +01:00
Daniel Bauer
c75629e3ff feat: bump version v1.2.0 2025-07-09 11:10:02 +02:00
Daniel Bauer
f35305568c fix: typing errors in tests 2025-07-09 11:09:17 +02:00
Daniel Bauer
663e6c3064 chore: reformat code 2025-07-09 11:01:32 +02:00
Daniel Bauer
e01d732014 feat: add tool to count objects 2025-07-09 11:01:17 +02:00
Daniel Bauer
3dc4e664af feat: change search_objects to return only object IDs
- Changed search_objects function to return only object IDs instead of full objects
- Updated response format to include object_ids, total_count, page_num, and page_size
- Increased default page size from 1 to 25 for better performance
- Updated documentation to reflect new return format

This improves performance by reducing response size and encourages proper
use of cordra:// resources for full object retrieval.
2025-07-09 11:00:00 +02:00
Daniel Bauer
1eb7285132 chore: update lockfile v1.1.1 2025-07-09 09:53:44 +02:00
Daniel Bauer
906e387192 ci: assert lock file has been updated 2025-07-09 09:53:19 +02:00
Daniel Bauer
0a03fec5b8 fix: synchronize version 2025-07-09 09:49:17 +02:00
Daniel Bauer
e541a27d9f ci: validate version and only publish when tagged 2025-07-09 09:46:49 +02:00
Daniel Bauer
20b2f1b219 doc: add example gif 2025-07-08 13:58:13 +02:00
Daniel Bauer
38e1118167 chore: update lock file for version 1.1.0
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:53:39 +02:00
Daniel Bauer
d04bfd2f90 Merge branch 'main' of github.com:dnlbauer/cordra-mcp 2025-07-05 12:48:18 +02:00
Daniel Bauer
2499654bf4 bump: version 1.1.0
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:48:02 +02:00
Daniel Bauer
3e8205c098 Merge pull request #1 from dnlbauer/fix-schema-pagination
Fix schema pagination and enhance search functionality
2025-07-05 12:43:55 +02:00
Daniel Bauer
8286882f87 docs: update README for pagination support and config cleanup
- Document search_objects pagination parameters
- Remove obsolete CORDRA_MAX_SEARCH_RESULTS config option
- Update tool description to reflect new functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:39:52 +02:00
Daniel Bauer
64c625dcb9 refactor(search): change default limit from None to 1
Change the default limit parameter for search_objects from None to 1
to optimize for single object searches. This makes the API more
intuitive for common use cases where users want to find a specific
object without specifying pagination parameters.

Changes:
- Update limit parameter type from `int | None = None` to `int = 1`
- Remove conditional logic handling None values
- Update documentation to reflect new default
- Update all tests to expect new default behavior

This improves usability for exploratory searches while maintaining
full pagination functionality when larger limits are specified.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:37:40 +02:00
Daniel Bauer
dec0b7702a feat: add pagination support to search_objects MCP tool
Add page_num parameter to the search_objects tool to enable pagination
control for users. This provides full pagination functionality while
maintaining backward compatibility.

Changes:
- Add page_num parameter with default value of 0 (0-based pagination)
- Update tool description to document pagination parameters
- Enhance docstring to explain page_num and clarify limit as page_size
- Add comprehensive tests for pagination scenarios
- All existing functionality remains unchanged

Users can now paginate through search results:
- search_objects("query") - first page, 20 results
- search_objects("query", limit=50) - first page, 50 results
- search_objects("query", page_num=1) - second page, 20 results
- search_objects("query", limit=10, page_num=5) - sixth page, 10 results

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:32:43 +02:00
Daniel Bauer
56e1a85d5e refactor: remove unused max_search_results config parameter
The max_search_results configuration parameter was only used in one
location and added unnecessary complexity. Search operations now use
a consistent default page size of 20, which aligns with the pagination
implementation and provides better user experience.

Changes:
- Remove max_search_results from CordraConfig
- Update search_objects to use default page size of 20
- Simplify tests by removing config mocking
- Maintain backward compatibility through limit parameter

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:23:57 +02:00
Daniel Bauer
f32b4c9448 fix: implement pagination for schema resource fetching
The schema resource registration was only fetching the first page of
schemas from Cordra, causing schemas beyond the page limit to not be
registered as MCP resources.

Changes:
- Enhanced find() method to support pagination with page_size/page_num
- Modified schema registration to paginate through all results
- Updated return structure to include pagination metadata
- Added comprehensive test coverage for pagination scenarios
- Maintains backward compatibility with existing code

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 12:16:38 +02:00
Daniel Bauer
6dcc039470 doc: document how to use the python package 2025-07-04 13:21:50 +02:00
Daniel Bauer
2ca87fb87f feat: publish to pypi 2025-07-04 13:11:17 +02:00
Daniel Bauer
99a1397164 doc: document how to use the docker build 2025-07-04 13:06:20 +02:00
Daniel Bauer
3272f527dd feat: add docker build 2025-07-04 12:57:08 +02:00
Daniel Bauer
0b61b09915 doc: update project metadata in pyproject.toml 2025-07-04 11:05:00 +02:00
Daniel Bauer
b9d1df6370 chore: bump version to 1.0.0 2025-07-04 10:18:49 +02:00
Daniel Bauer
e781c1d060 doc: add missing resources and tools to README 2025-07-04 10:14:54 +02:00
Daniel Bauer
748d9b604f feat: add design object resource for repository configuration access
Add new MCP resource cordra://design to retrieve Cordra's central design object
containing repository configuration, type definitions, and system settings.

- Add CordraClient.get_design() method using /api/objects/design endpoint
- Add get_cordra_design() resource handler with proper MCP annotations
- Include comprehensive error handling for authentication failures
- Document administrative privilege requirements in descriptions
- Add complete test coverage for both client and server functionality

The design object provides AI systems access to understand the complete
data model and configuration structure of a Cordra repository.
2025-07-04 10:07:16 +02:00
Daniel Bauer
94340e2bb1 feat: add search tool for digital object discovery
Implement MCP tool to search Cordra repository using Lucene/Solr syntax.
Enables AI assistants to discover and filter digital objects by content,
type, and other metadata fields.

Features:
- Lucene/Solr compatible query syntax support
- Optional type filtering (e.g., Person, Document)
- Configurable result limits with sensible defaults
- Comprehensive error handling and validation
- JSON formatted results with proper indentation

Technical changes:
- Enhanced CordraClient.find() with type and limit parameters
- Added search_objects MCP tool with detailed annotations
- Removed unused tools module in favor of decorator approach
- Added 12 comprehensive unit tests covering all scenarios
2025-07-04 09:30:38 +02:00
Daniel Bauer
46e1a8057f feat: improve resource documentation 2025-07-03 21:19:22 +02:00
Daniel Bauer
e3551548e3 fix: ci/cd typo 2025-06-30 13:44:29 +02:00
Daniel Bauer
744efc7e57 Revert "feat: change settings prefix to avoid clashes with projects using cordra"
This reverts commit 35d304a6c4.
2025-06-30 13:14:21 +02:00
Daniel Bauer
0fd86775ac feat: remove .env parsing du to clashes with projects using .env 2025-06-30 13:12:46 +02:00
Daniel Bauer
35d304a6c4 feat: change settings prefix to avoid clashes with projects using cordra 2025-06-30 13:01:21 +02:00
Daniel Bauer
3c2a2334dc feat: add python 3.13 to tests 2025-06-30 13:00:59 +02:00
Daniel Bauer
485a0dd738 fix: remove ruff deprecation warning 2025-06-30 13:00:27 +02:00
Daniel Bauer
de485500a2 feat: add python 3.13 to pipeline 2025-06-30 12:37:21 +02:00
Daniel Bauer
90b0180212 feat: add ci/cd pipeline for github 2025-06-30 12:36:33 +02:00
Daniel Bauer
0c1670f573 feat: add License file 2025-06-30 12:31:08 +02:00
Daniel Bauer
c24c5368ff doc: update readme 2025-06-30 12:30:23 +02:00
Daniel Bauer
67f56a51ff feat: remove test tool. 2025-06-30 12:11:58 +02:00
Daniel Bauer
2fdf4184de feat: change variable name for base url 2025-06-30 12:07:09 +02:00
Daniel Bauer
23b5e66600 fix: frong script name 2025-06-30 12:04:08 +02:00
Daniel Bauer
96df10adb0 fix: update tests for module rename from mcp_cordra to cordra_mcp
- Updated all import statements in test files
- Added types-requests dependency for mypy type checking
- Fixed code formatting with ruff
2025-06-30 12:01:53 +02:00
Daniel Bauer
4102860d98 feat: linting 2025-06-30 11:52:10 +02:00
Daniel Bauer
addfea8698 fix: update project name to 'cordra-mcp' in configuration files 2025-06-30 11:51:08 +02:00
Daniel Bauer
9901f51f06 fix: linter and unit tests 2025-06-30 11:44:25 +02:00
Daniel Bauer
f34d3e6e7c fix: add missing dependencies 2025-06-30 11:35:11 +02:00
Daniel Bauer
6faca65408 feat: init resources 2025-06-30 11:33:29 +02:00