Conversation
|
I have read the CLA Document and I hereby sign the CLA You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
|
👋 Welcome, @adity982, and thanks for opening your first PR on AnythingMCP! A few quick pointers:
Someone from the core team will look at this within ~48h. If you don't hear back, please ping us in Discussions / Q&A. ⭐ While you wait — if you find AnythingMCP useful, a star helps others discover it. |
|
Thanks for this, and for picking the one from #593 that has the clearer payoff. I approved the workflows (fork PRs need that here) and CI is green: backend lint, typecheck, tests and build all pass, so your "could not install dependencies" note is covered, you did not break anything. I read the whole diff. The design is right and I want this feature. Two things before it can go in, one of them matters a lot. 1. Resources ignore role-based access. This is the blocker. In That is not theoretical for us. We have a customer running a read-only role with 64 explicitly denied tools, and the whole point of that role is that the agent cannot see the rest. Resources have to respect the same boundary. Something like this, right after step 4 where const allowedConnectorIds = new Set(
serverTools
.filter((t) => !allowedToolIds || allowedToolIds.includes(t.id))
.map((t) => t.connectorId),
);
const resources = this.planResources(
serverId,
resourceConnectors.filter((c) => allowedConnectorIds.has(c.id)),
instructions,
);Please also add a test for it. The rule I go by after an isolation bug we shipped earlier this year: an isolation test that does not assert the negative case is not a test. So: same server, a role that denies connector B's tools, assert connector B's URI is absent from the planned list. 2. Drop the
Worth knowing: nothing in the codebase writes Two smaller notes, neither blocking:
And the only other blocker is out of my hands: the CLA check is red. Post the one line the bot asks for and I can merge as soon as the two points above are in. |
Signed-off-by: Aditya Datta <crazyme07071996@gmail.com>
|
Addressed both blockers in
I also typed Validation on the pushed head:
I have not posted the CLA attestation; that remains a separate author decision. |
Summary\n\n- expose native MCP resources on per-server endpoints via
esources/list and
esources/read\n- publish composed server instructions, connector setup instructions, and persisted McpResource content\n- keep resource discovery tenant-scoped and fail closed for remote URL fetch configs to avoid SSRF\n- deduplicate resource URIs and document the stateful-session snapshot behavior\n\n## Validation\n\n- TypeScript parser smoke check passed for changed backend files\n- resource helper smoke check passed (serialization, registration, callback output)\n- git diff --check passed\n- Full backend Jest/build validation was not runnable because dependency installation cannot complete on this host (no
ode_modules/.bin/jest or TypeScript compiler available).\n\n## Certification\n\n- [x] This change follows the AnythingMCP contribution standards (https://github.com/HelpCode-ai/anythingmcp/blob/main/CONTRIBUTING.md)\n\nCloses #593