Skip to content

Merging agentic-mcp into main #1544

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

Open
wants to merge 106 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
4dce33c
feat: basic invoking and result message for MCP (#1251)
bywang56 May 2, 2025
dd1aae5
Merge remote-tracking branch 'upstream/main' into agentic-mcp
bywang56 May 6, 2025
c6f96d7
feat: add CRUD methods for MCP servers (#1271)
bywang56 May 7, 2025
79624fe
feat: add MCP init timeut and minor fixes (#1304)
bywang56 May 9, 2025
dc378a5
Merge remote-tracking branch 'upstream/main' into agentic-mcp (#1318)
laileni-aws May 13, 2025
0d6708f
feat: expose MCP server init status (#1324)
bywang56 May 13, 2025
d7807b7
feat: initial MCP servers list ui changes (#1345)
ashishrp-aws May 15, 2025
55b4cd8
feat: support mcp exec timeout, add tool state interface (#1335)
bywang56 May 15, 2025
3345baa
feat: handle mcp config conflicts, support infinity timeout (#1352)
bywang56 May 16, 2025
17b7fe8
chore: bump up language server version (#1360)
laileni-aws May 19, 2025
c9933c1
feat: add update server permission method without re-init server (#1363)
bywang56 May 19, 2025
8bc318b
Merge main to agentic-mcp branch (#1366)
laileni-aws May 19, 2025
7eb9cbc
fix: refresh mcp server functionality (#1349)
chungjac May 19, 2025
89de199
feat: setup for MCP server tools permission UX (#1375)
ashishrp-aws May 19, 2025
4777236
feat: adding tool count to the MCP list (#1380)
ashishrp-aws May 20, 2025
d088750
Merge remote-tracking branch 'upstream/main' into parity
laileni-aws May 20, 2025
fd4af1b
fix: fixing merge conflicts
laileni-aws May 20, 2025
020d453
Merge pull request #1383 from laileni-aws/parity
laileni-aws May 20, 2025
822bcf0
fix: refresh button (#1381)
chungjac May 20, 2025
2399ce9
feat: adding add mcp configuration UX (#1385)
laileni-aws May 20, 2025
14af43a
fix: refresh button should not reset singleton instance (#1391)
chungjac May 20, 2025
d2cbeaa
feat: adding disable and delete mcp server functions (#1390)
ashishrp-aws May 20, 2025
a11aeb7
Merge pull request #1392 from aws/main
laileni-aws May 20, 2025
6f20a66
feat: adding optional values field to add mcp configuration ux (#1393)
laileni-aws May 20, 2025
379d38d
feat: support persona file (#1411)
bywang56 May 21, 2025
c619d58
feat: enable mcp server and fix for permission list mandatory items (…
ashishrp-aws May 21, 2025
b377746
fix: handle wilcar for enable/disable server (#1414)
bywang56 May 21, 2025
73b8025
feat: adding correct icons for MCP servers state (#1417)
ashishrp-aws May 22, 2025
11fa3d8
fix: success and error case for adding mcp server (#1412)
chungjac May 22, 2025
e0889e5
chore: bumping up language server version (#1418)
laileni-aws May 22, 2025
3989035
fix: adding chat summary card for mcp tools (#1419)
laileni-aws May 22, 2025
3608bca
feat: added built-in tools with proper permissions (#1420)
ashishrp-aws May 22, 2025
2ada470
support MCP paths for Windows (#1426)
leigaol May 22, 2025
aacf5b5
fix: multiple fixes for MCP + add back UTs (#1423)
bywang56 May 22, 2025
0888025
fix: check if mcp.json exits when mutating mcp json (#1427)
leigaol May 22, 2025
b699621
feat: adding permissions ux to the mcp and refactoring mynahui.ts and…
laileni-aws May 23, 2025
42a0571
Merge pull request #1429 from laileni-aws/mcp-ux
laileni-aws May 23, 2025
1f4c4f8
fix: closing mcp servers and each server should return to chat (#1430)
laileni-aws May 23, 2025
8206276
fix: emit status change event on MCP error (#1432)
bywang56 May 23, 2025
f15e95f
fix: add validation for user's input (#1434)
Randall-Jiang May 23, 2025
3d21ee9
feat: update server UX (#1437)
bywang56 May 23, 2025
37325bc
feat: dynamic server update and fix configuration button (#1436)
ashishrp-aws May 24, 2025
42a3b36
fix: merge conflict resolution (#1439)
ashishrp-aws May 24, 2025
6767113
fix: disable mcp tools for pair programmer off mode (#1442)
chungjac May 24, 2025
291a6fb
fix: use edit mcp view for fix configuration (#1441)
bywang56 May 24, 2025
49d6fe5
fix: adding ux changes to run button (#1445)
laileni-aws May 27, 2025
2e3c396
fix: fix for removing duplicates of completed status for chat summary…
ashishrp-aws May 27, 2025
476aedf
fix: removing edit config
laileni-aws May 27, 2025
0e6b651
Merge pull request #1449 from laileni-aws/origin/agentic-mcp
laileni-aws May 27, 2025
fc349d9
fix: fix for mcp permissions page for global and workspace (#1450)
ashishrp-aws May 27, 2025
33cac78
fix: use delimiter ___ between serverName and toolName for MCP (#1451)
yueny2020 May 27, 2025
7700ab3
chore: bumpingup language server runtimes version to 0.2.88
laileni-aws May 28, 2025
ab1a44d
Merge pull request #1452 from laileni-aws/origin/agentic-mcp
laileni-aws May 28, 2025
edf7b5a
fix: don't add args and env to mcp.json file if empty (#1453)
chungjac May 28, 2025
dee5c49
fix: when user enter duplicate server name it should be an error (#1457)
Randall-Jiang May 28, 2025
902b2f4
fix: adding error handling for list of mcp servers
laileni-aws May 28, 2025
9c10555
fix: rebasing to agentic-chat
laileni-aws May 28, 2025
c558d08
fix: Adding tooltip descriptions to tool count and enabling the count
laileni-aws May 28, 2025
85bca64
Merge pull request #1461 from laileni-aws/ux-fix
laileni-aws May 28, 2025
032442f
fix: adding validation for list of mcp servers
laileni-aws May 28, 2025
cdd86d5
fix: showing error status if there is a validation error in list of m…
laileni-aws May 28, 2025
f20e277
Merge pull request #1466 from laileni-aws/origin/agentic-mcp
laileni-aws May 29, 2025
0df7aa6
feat: check if mcp is supported (#1460)
yueny2020 May 29, 2025
8450ac0
fix: ux fixes for mcp list (#1471)
laileni-aws May 29, 2025
bb2557e
chore: use mcp field passed in from client (#1473)
yueny2020 May 29, 2025
380c742
fix: adding error handling for config load errors to display them to ux
laileni-aws May 29, 2025
39afacd
fix: addressing comments
laileni-aws May 29, 2025
aacd440
fix: minor edita
laileni-aws May 29, 2025
55f4959
fix: fix ws level config and multiple bugs (#1477)
bywang56 May 29, 2025
fb4a322
fix: adding error handling for config load errors to display them to ux
laileni-aws May 29, 2025
3cdbd36
fix: revert change on json file (#1455)
Randall-Jiang May 30, 2025
ef2ac92
fix: show invalid configuration error when fixing server config (#1472)
chungjac May 30, 2025
9b5b600
fix: ux fit and finish task and adding explanation to chat summary card
laileni-aws May 30, 2025
b57b4ef
fix: remove unused util (#1482)
Randall-Jiang May 30, 2025
974ca46
fix: ux fit and finish task and adding explanation to chat summary card
laileni-aws May 30, 2025
282ce52
fix: use json for persona, add default persona (#1491)
bywang56 May 30, 2025
ebba8b9
fix: add remove function for inactive mcp server (#1498)
Randall-Jiang Jun 1, 2025
a4d9e6f
fix: fix bugs (#1493)
Randall-Jiang Jun 2, 2025
09e5960
fix: do not have empty args or env while updating server (#1492)
chungjac Jun 2, 2025
f996438
merge mainline to agentic-mcp (#1509)
ashishrp-aws Jun 3, 2025
72f54d2
fix: make whole row clickable (#1507)
chungjac Jun 3, 2025
6ea09b2
fix: update default persona file spec and tool permisions strings
chungjac Jun 3, 2025
a2c6c10
fix: fix to correctly load the permissions (#1516)
ashishrp-aws Jun 4, 2025
4d776e0
merge main into agentic-mcp (#1520)
ashishrp-aws Jun 4, 2025
1f23675
fix: don't show erros on mcp server list page (#1513)
chungjac Jun 4, 2025
8b2edc9
fix: persist only copy of mcp server when scope is changed
ashishrp-aws Jun 5, 2025
38df958
fix: fix for correct initialization of tools with namespacing for ref…
ashishrp-aws Jun 5, 2025
4f26777
fix: fix to refresh only one server that is enabled
ashishrp-aws Jun 5, 2025
ea47a76
Merge upstream/main into temp-merge-branch
ashishrp-aws Jun 5, 2025
a06bed8
Merge pull request #1539 from ashishrp-aws/agentic-mcp-merge-2
ashishrp-aws Jun 5, 2025
00cf308
Merge pull request #1529 from ashishrp-aws/agentic-mcp
ashishrp-aws Jun 5, 2025
42bc2bb
Merge pull request #1532 from ashishrp-aws/enable-mcp-server-refresh
ashishrp-aws Jun 5, 2025
386d0ee
Merge pull request #1531 from ashishrp-aws/agentic-mcp-tool-number
ashishrp-aws Jun 5, 2025
0851ffb
Merge main into agentic-mcp, resolving conflicts in package-lock.json
ashishrp-aws Jun 5, 2025
f7529bd
Merge pull request #1541 from ashishrp-aws/agentic-mcp
ashishrp-aws Jun 5, 2025
bbd0162
fix: correcting fuzzysearch to fileSearch from merge conflicts (#1543)
ashishrp-aws Jun 5, 2025
b2ac384
fix: fix for merge conflict errors (#1545)
ashishrp-aws Jun 5, 2025
0e68803
fix: fix merge conflicts for fuzzySearch (#1546)
ashishrp-aws Jun 6, 2025
86ec96f
telemetry(mcp): adding mcp telemetry metrics (#1528)
laileni-aws Jun 6, 2025
60f255f
fix: adding mcp server through UI for Windows (#1547)
chungjac Jun 6, 2025
0e2488a
fix: mcp server should use workspace persona first (#1530)
Randall-Jiang Jun 6, 2025
fb7a5e2
fix: fix to correctly store permissions if user reverts his permissio…
ashishrp-aws Jun 6, 2025
74fd76c
Merge remote-tracking branch 'upstream/main' into agentic-mcp
ashishrp-aws Jun 6, 2025
af92731
Merge pull request #1556 from ashishrp-aws/agentic-mcp
ashishrp-aws Jun 6, 2025
e072208
fix: timeout displayed and accepted in seconds (#1535)
chungjac Jun 6, 2025
058aff4
fix: when user remove the mcp server, it should also been removed fro…
Randall-Jiang Jun 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions app/aws-lsp-codewhisperer-runtimes/src/agent-standalone.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ import {
WorkspaceContextServerTokenProxy,
} from '@aws/lsp-codewhisperer'
import { IdentityServer } from '@aws/lsp-identity'
import { BashToolsServer, FsToolsServer } from '@aws/lsp-codewhisperer/out/language-server/agenticChat/tools/toolServer'
import {
BashToolsServer,
FsToolsServer,
McpToolsServer,
} from '@aws/lsp-codewhisperer/out/language-server/agenticChat/tools/toolServer'
import { createTokenRuntimeProps } from './standalone-common'

const MAJOR = 0
Expand All @@ -28,7 +32,7 @@ const props = createTokenRuntimeProps(VERSION, [
BashToolsServer,
QLocalProjectContextServerTokenProxy,
WorkspaceContextServerTokenProxy,
// McpToolsServer,
McpToolsServer,
// LspToolsServer,
])

Expand Down
8 changes: 4 additions & 4 deletions chat-client/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,8 @@

### Changed

- Update `@aws/chat-client-ui-types` to 0.1.0
- Update `@aws/language-server-runtimes-types` to 0.1.0
- Update `@aws/chat-client-ui-types` to 0.1.35
- Update `@aws/language-server-runtimes-types` to 0.1.29
- Shortened legal text in the footer

## [0.0.9] - 2024-11-20
Expand All @@ -241,8 +241,8 @@
### Changed

- Changed legal text in the footer
- Update `@aws/chat-client-ui-types` to 0.0.8
- Update `@aws/language-server-runtimes-types` to to 0.0.7
- Update `@aws/chat-client-ui-types` to 0.1.35
- Update `@aws/language-server-runtimes-types` to 0.1.29
- Upgraded dependency: `@aws/mynah-ui` from 4.15.11 to 4.18.0:
- Inline code elements now wrap onto new lines
- Send button no longer shifts out of the window when horizontally filling the prompt input without spaces (now it wraps)
Expand Down
35 changes: 32 additions & 3 deletions chat-client/src/client/chat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,15 @@ import {
InfoLinkClickParams,
LINK_CLICK_NOTIFICATION_METHOD,
LIST_CONVERSATIONS_REQUEST_METHOD,
LIST_MCP_SERVERS_REQUEST_METHOD,
LinkClickParams,
ListConversationsParams,
ListConversationsResult,
ListMcpServersParams,
ListMcpServersResult,
MCP_SERVER_CLICK_REQUEST_METHOD,
McpServerClickParams,
McpServerClickResult,
OPEN_TAB_REQUEST_METHOD,
OpenTabParams,
OpenTabResult,
Expand Down Expand Up @@ -162,9 +168,16 @@ export const createChat = (
case CHAT_REQUEST_METHOD:
mynahApi.addChatResponse(message.params, message.tabId, message.isPartialResult)
break
case CHAT_UPDATE_NOTIFICATION_METHOD:
mynahApi.updateChat(message.params as ChatUpdateParams)
break
case CHAT_UPDATE_NOTIFICATION_METHOD: {
const messageParams = message.params as ChatUpdateParams
if (messageParams?.tabId === 'mcpserver') {
mynahApi.mcpServerClick({ id: 'update-mcp-list' })
break
} else {
mynahApi.updateChat(message.params as ChatUpdateParams)
break
}
}
case OPEN_TAB_REQUEST_METHOD:
mynahApi.openTab(message.requestId, message.params as OpenTabParams)
break
Expand All @@ -186,6 +199,12 @@ export const createChat = (
case CONVERSATION_CLICK_REQUEST_METHOD:
mynahApi.conversationClicked(message.params as ConversationClickResult)
break
case LIST_MCP_SERVERS_REQUEST_METHOD:
mynahApi.listMcpServers(message.params as ListMcpServersResult)
break
case MCP_SERVER_CLICK_REQUEST_METHOD:
mynahApi.mcpServerClick(message.params as McpServerClickResult)
break
case GET_SERIALIZED_CHAT_REQUEST_METHOD:
mynahApi.getSerializedChat(message.requestId, message.params as GetSerializedChatParams)
break
Expand Down Expand Up @@ -220,6 +239,10 @@ export const createChat = (
tabFactory.updateQuickActionCommands(quickActionCommandGroups)
}

if (params?.mcpServers && config?.agenticMode) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to add tests that assert:

  • when mcpServers is absent there are no mcp controls on the UI
  • when mcpServers is false there are no mcp controls on the UI
  • when mcpServers is true the mcp controls are on the UI

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added tests

tabFactory.enableMcp()
}

if (params?.history) {
tabFactory.enableHistory()
}
Expand Down Expand Up @@ -363,6 +386,12 @@ export const createChat = (
conversationClick: (params: ConversationClickParams) => {
sendMessageToClient({ command: CONVERSATION_CLICK_REQUEST_METHOD, params })
},
listMcpServers: (params: ListMcpServersParams) => {
sendMessageToClient({ command: LIST_MCP_SERVERS_REQUEST_METHOD, params })
},
mcpServerClick: function (params: McpServerClickParams): void {
sendMessageToClient({ command: MCP_SERVER_CLICK_REQUEST_METHOD, params })
},
tabBarAction: (params: TabBarActionParams) => {
sendMessageToClient({ command: TAB_BAR_ACTION_REQUEST_METHOD, params })
},
Expand Down
12 changes: 12 additions & 0 deletions chat-client/src/client/messager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ import {
InfoLinkClickParams,
LinkClickParams,
ListConversationsParams,
ListMcpServersParams,
McpServerClickParams,
OpenTabResult,
PromptInputOptionChangeParams,
QuickActionParams,
Expand Down Expand Up @@ -89,6 +91,8 @@ export interface OutboundChatApi {
fileClick(params: FileClickParams): void
listConversations(params: ListConversationsParams): void
conversationClick(params: ConversationClickParams): void
mcpServerClick(params: McpServerClickParams): void
listMcpServers(params: ListMcpServersParams): void
tabBarAction(params: TabBarActionParams): void
onGetSerializedChat(requestId: string, result: GetSerializedChatResult | ErrorResult): void
promptInputOptionChange(params: PromptInputOptionChangeParams): void
Expand Down Expand Up @@ -217,6 +221,14 @@ export class Messager {
this.chatApi.conversationClick({ id: conversationId, action })
}

onListMcpServers = (filter?: Record<string, FilterValue>): void => {
this.chatApi.listMcpServers({ filter })
}

onMcpServerClick = (id: string, title?: string, options?: Record<string, string>): void => {
this.chatApi.mcpServerClick({ id: id, title: title, optionsValues: options })
}

onTabBarAction = (params: TabBarActionParams): void => {
this.chatApi.tabBarAction(params)
}
Expand Down
2 changes: 2 additions & 0 deletions chat-client/src/client/mynahUi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ describe('MynahUI', () => {
fileClick: sinon.stub(),
listConversations: sinon.stub(),
conversationClick: sinon.stub(),
listMcpServers: sinon.stub(),
mcpServerClick: sinon.stub(),
tabBarAction: sinon.stub(),
onGetSerializedChat: sinon.stub(),
promptInputOptionChange: sinon.stub(),
Expand Down
Loading
Loading