MCP Tools for PDS - #30
Open
iamsims wants to merge 21 commits into
Open
Conversation
NISH1001
requested changes
Feb 13, 2026
Collaborator
|
@iamsims also provide better descirption for PR. |
NISH1001
requested changes
Feb 13, 2026
NISH1001
left a comment
Collaborator
There was a problem hiding this comment.
1st pass:
Couple of observations
- You can avoid using
Annotatedto primite types like float, int, str etc and direclty useField(...)level constraints there - Use
loguru - Use base url from env. the comment says env but env is not impleented
- Add tools for 6 PDS APIs: IMG, ODE, OPUS, PDS4, PDS Catalog, and SBN - Add Literal types derived from sde-data-agents resources (without resources) - Validate parity extensively for IMG, ODE, OPUS, PDS4, and PDS Catalog Note: SBN parity validation still TODO
- Move testing instructions to md - Add loading base url from env with defaults - Use loguru for logging - Remove annotated type and use field type
Several PDS4/img/opus/pds_catalog search tools had hardcoded le=25/le=50 caps on their limit params, which could return large enough payloads to overflow orchestrator context on heavy per-record responses. Replace bare literals with named MAX_*_LIMIT constants and lower the ones with the heaviest per-record payload or biggest cap (pds4 products/bundles/ collections, img search rows, opus search, pds_catalog search/list), while keeping lighter context-lookup tools (investigations/targets/ instruments/instrument_hosts, facets) at their existing cap since a smaller max there would hurt legitimate keyword-browsing use. Also add akd_ext/tools/pds/README.md documenting every PDS tool's default/max limit for future reference. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ator Add a cap-and-pagination sentence to every capped search/list tool's docstring so the orchestrator knows, without guessing, whether hitting the limit means "page with offset/startobs" or "no pagination exists, narrow the query instead." Fix a silent-truncation gap in pds_catalog list_missions/list_targets: they had no total-count signal at all, so if there were more than 30 missions/targets the orchestrator got a truncated list with no way to detect it. CatalogIndex/PDSCatalogClient.list_missions/list_targets now return (items, total) instead of just items, and the tools expose total_available + has_more in their output schemas. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
akd_ext's MCP server transitively imports bs4 via akd-core's web_scrapers module, but it was never declared directly, so environments without it as an incidental transitive dep (like the Docker build) fail fastmcp inspect with ModuleNotFoundError.
akd-core's develop branch deleted akd.tools.search.code_search (SDECodeSearchTool and friends) with no replacement in commit 771d7c3, which broke akd_ext's RepositorySearchTool (it subclasses SDECodeSearchTool directly). Pin to f2713ba, the last akd-core commit before that removal, until RepositorySearchTool is migrated or reimplemented against whatever comes next upstream.
…endency This server only hosts PDS MCP tools, so remove code_search (RepositorySearchTool/CodeSignalsSearchTool, which depended on akd.tools.search.code_search - deleted upstream in akd-core with no replacement) and sde_search, along with their tests and the now-unused PyGithub dependency. Revert akd-core back to tracking @develop since we no longer need the pre-removal pin. Verified locally with `docker build` mirroring the FastMCP Cloud build steps (git+uv install, fastmcp inspect) end-to-end.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.