-
Notifications
You must be signed in to change notification settings - Fork 154
chore: update atlas tools output to json - MCP-264 #653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Pull Request Test Coverage Report for Build 18978566012Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates Atlas tools to return JSON-formatted data instead of table-formatted output, improving machine readability and consistency.
Key Changes:
- Replaced table-formatted output with JSON.stringify() for all Atlas tool responses
- Updated integration tests to validate JSON content instead of parsing tables
- Removed unused table parsing utility function
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tools/atlas/read/listOrgs.ts | Converts organization list output from table to JSON format |
| src/tools/atlas/read/listDBUsers.ts | Converts database users output from table to JSON, removes helper functions |
| src/tools/atlas/read/listClusters.ts | Converts cluster list output from table to JSON for both all-projects and single-project views |
| src/tools/atlas/read/listAlerts.ts | Converts alerts output from table to JSON format |
| src/tools/atlas/read/inspectCluster.ts | Converts cluster details output from table to JSON format |
| src/tools/atlas/read/inspectAccessList.ts | Converts access list entries output from table to JSON format |
| tests/integration/tools/atlas/orgs.test.ts | Updates test to validate JSON content instead of parsing tables |
| tests/integration/tools/atlas/clusters.test.ts | Updates tests to validate JSON content, removes table parsing logic |
| tests/integration/tools/atlas/alerts.test.ts | Updates test description and assertions to expect JSON format |
| tests/integration/tools/atlas/atlasHelpers.ts | Removes unused parseTable helper function |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
|
||
| private formatOutput(formattedCluster: Cluster): CallToolResult { | ||
| const clusterDetails = { | ||
| name: formattedCluster.name || "Unknown", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In other commands we return null/undefined, could we do that for all tools?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's an interesting point. having these human-readable make it easier to parse from both human and LLM perspective I'd think. If there's both null and undefined cases which mean different things then it's worth keeping or handling them differently but otherwise I don't have strong feelings about it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ack, I'll keep "N/A" like the previous implementation everywhere then! thanks for flagging
| created: alert.created ? new Date(alert.created).toISOString() : null, | ||
| updated: alert.updated ? new Date(alert.updated).toISOString() : null, | ||
| eventTypeName: alert.eventTypeName, | ||
| acknowledgementComment: alert.acknowledgementComment ?? "N/A", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same remark, can we avoid mixing null and N/A?
Proposed changes
Checklist