feat(mcp): support mcp resources (#2215)

* feat(mcp): support mcp resources

* feat(web): split MCP resources into tab

* docs: add MCP resources PR review

* feat(mcp): productionize resource support

* feat(mcp): scope local agent tools and resources

* fix(web): gate space embedding models behind login

* fix(web): prevent clipped space model CTA

* test: update preproc resource tool expectations

* fix(web): expose skill authoring tools in selector

---------

Co-authored-by: yang.xiang <yang.xiang@advancegroup.com>
Co-authored-by: Hyu <chenhyu@proton.me>
Co-authored-by: Junyan Qin <rockchinq@gmail.com>
This commit is contained in:
advancer-young
2026-06-30 19:16:30 +08:00
committed by GitHub
parent 2618e06492
commit 096ec1a8ce
39 changed files with 4103 additions and 201 deletions
+46
View File
@@ -824,7 +824,9 @@ const enUS = {
toolsFound: 'tools',
unknownError: 'Unknown error',
noToolsFound: 'No tools found',
noResourcesFound: 'No resources found',
tabTools: 'Tools',
tabResources: 'Resources',
tabDocs: 'Docs',
noReadme: 'No documentation available',
parseResultFailed: 'Failed to parse test result',
@@ -844,6 +846,11 @@ const enUS = {
toolCount: 'Tools: {{count}}',
parameterCount: 'Parameters: {{count}}',
noParameters: 'No parameters',
resourceCount: 'Resources: {{count}}',
resourceBinaryContent: 'Binary content (cannot be displayed)',
resourceBinaryOmitted: 'Binary content omitted by resource safety policy',
resourceTruncated: 'Content truncated by byte or token limits',
resourceReadFailed: 'Failed to read resource content',
statusConnected: 'Connected',
statusDisconnected: 'Disconnected',
statusError: 'Connection Error',
@@ -935,9 +942,12 @@ const enUS = {
selectPlugins: 'Select Plugins',
pluginsTitle: 'Plugins',
mcpServersTitle: 'MCP Servers',
mcpResourcesTitle: 'MCP Resources',
noMCPServersSelected: 'No MCP servers selected',
noMCPResourcesAvailable: 'No MCP resources available',
addMCPServer: 'Add MCP Server',
selectMCPServers: 'Select MCP Servers',
enableMCPResourceAgentRead: 'Agent read',
toolCount: '{{count}} tools',
noPluginsInstalled: 'No installed plugins',
noMCPServersConfigured: 'No configured MCP servers',
@@ -953,6 +963,42 @@ const enUS = {
addSkill: 'Add Skill',
selectSkills: 'Select Skills',
noSkillsAvailable: 'No skills available',
mcpServersScopeTooltip:
'This only controls which MCP servers are bound to the pipeline. Choose exact MCP tools and resources in AI Feature > Local Agent.',
enableAllMCPServersTooltip:
'When enabled, all configured and enabled MCP servers become candidates for MCP tools and resources in AI Feature.',
},
localAgent: {
toolsTitle: 'Tools',
toolsDescription:
'Select plugin, MCP, skill, and built-in tools available to this Local Agent.',
toolsScopeTooltip:
'MCP tools only come from MCP servers bound in Extensions. Bind another MCP server there to make its tools selectable here.',
enableAllTools: 'Enable all tools',
allToolsEnabled: 'All available tools are enabled',
noToolsSelected: 'No tools selected',
editTools: 'Edit tools',
builtinTools: 'Built-in tools',
pluginTools: 'Plugin tools',
skillTools: 'Skill tools',
mcpTools: 'MCP tools',
mcpToolsScopeTooltip:
'Only tools from MCP servers currently allowed in Extensions are shown here.',
skillToolsScopeTooltip:
'Skill tools are available when LangBot skill service and the Box sandbox backend are ready. They let the agent activate or register skills.',
selectTools: 'Select tools',
resourcesTitle: 'Resources',
resourcesDescription:
'Select MCP resources and knowledge bases available to this Local Agent.',
knowledgeBases: 'Knowledge bases',
mcpResources: 'MCP resources',
mcpResourcesScopeTooltip:
'Only resources exposed by MCP servers currently allowed in Extensions are shown here.',
enableMCPResourceRead: 'Allow model to read MCP resources',
mcpResourceReadTooltip:
'When disabled, selected MCP resources are not injected into model context.',
noMCPResourcesAvailable: 'No MCP resources available',
selectKnowledgeBases: 'Select knowledge bases',
},
debugDialog: {
title: 'Pipeline Chat',