Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
0d50a90
mochi kickoff
mochimilk Aug 25, 2025
8637853
Merge branch 'macae-v3-dev' of https://github.com/microsoft/Multi-Age…
mochimilk Aug 25, 2025
6643724
added the local deployment changes
Dhruvkumar-Microsoft Aug 26, 2025
acf075b
cleanup: drop unintended frontend changes, keep only infra + backend
UtkarshMishra-Microsoft Aug 27, 2025
19a1080
cleanup: remove unintended frontend files and reset edited ones to base
UtkarshMishra-Microsoft Aug 27, 2025
4d7e9cc
Delete src/frontend/src/components/common/TeamSelector.tsx
UtkarshMishra-Microsoft Aug 27, 2025
3f90364
Delete src/frontend/src/pages/PlanPage.tsx
UtkarshMishra-Microsoft Aug 27, 2025
939a622
Delete src/frontend/src/services/TeamService.tsx
UtkarshMishra-Microsoft Aug 27, 2025
1cde0d6
ws testing
marktayl1 Aug 27, 2025
a802ca4
add mcp dependency
marktayl1 Aug 27, 2025
9a647c7
end of day commit
marktayl1 Aug 28, 2025
3bc0747
Adding messages
marktayl1 Aug 28, 2025
6d8fa87
ui websocket wip
blessing-sanusi Aug 28, 2025
7c4a25a
teams init
blessing-sanusi Aug 28, 2025
330c56c
team init changes
marktayl1 Aug 28, 2025
55f5ef4
Merge branch 'macae-UIWS-wip2' of https://github.com/microsoft/Multi-…
marktayl1 Aug 28, 2025
ba12990
Team load functioning
marktayl1 Aug 29, 2025
6a20981
teams init
blessing-sanusi Aug 29, 2025
db901bd
ui ws wip
blessing-sanusi Aug 29, 2025
562a03e
ui ws wip
blessing-sanusi Aug 29, 2025
67733d3
Websocket context solution - draft
marktayl1 Aug 29, 2025
065f152
clean up user safe websocket calling across contexts
marktayl1 Aug 29, 2025
1644523
Adding support for proxy agent messages
marktayl1 Aug 29, 2025
e95a02a
Updates for socket messages from proxy agent
marktayl1 Aug 30, 2025
b8f11cd
Remove but document mcp auth
marktayl1 Aug 30, 2025
abca384
Added prompt for tools use with HIL
marktayl1 Aug 30, 2025
c69bb7d
Send final answer over websockets
marktayl1 Aug 30, 2025
0eece25
modifying prompt addition
marktayl1 Aug 30, 2025
4793119
Delete connection_manager.py
Fr4nc3 Aug 31, 2025
4ed204c
Remove onboarding scenarios module
Fr4nc3 Aug 31, 2025
37bfb69
Add custom Azure infrastructure and scripts
Fr4nc3 Sep 1, 2025
c55b01a
Add datasets and expand infrastructure for MCP
Fr4nc3 Sep 1, 2025
b338389
Remove MCP server and date utility modules
Fr4nc3 Sep 1, 2025
cba9d98
Update mcp_server.py
Fr4nc3 Sep 1, 2025
7244708
Refactor config usage to use AppConfig instance
Fr4nc3 Sep 1, 2025
c09db80
Update reasoning_agent.py
Fr4nc3 Sep 1, 2025
5977785
Use configurable MCP server settings
Fr4nc3 Sep 1, 2025
c3472c8
Remove all sample datasets from data/datasets
Fr4nc3 Sep 1, 2025
d37be31
dataset back
Fr4nc3 Sep 1, 2025
2d17c33
Add plan_id to InputTask and update API logic
Fr4nc3 Sep 2, 2025
0b9515b
Add UserCurrentTeam model and update plan creation
Fr4nc3 Sep 2, 2025
3a52cfe
Refactor plan creation and make team_id optional
Fr4nc3 Sep 2, 2025
a07c392
Update MCP server endpoint and fix plan_id response
Fr4nc3 Sep 2, 2025
0233c56
Merge branch 'macae-UIWS-wip2' of https://github.com/microsoft/Multi-…
marktayl1 Sep 2, 2025
7cbda41
Merge branch 'macae-v3-dev-mt-fr-2' of https://github.com/microsoft/M…
marktayl1 Sep 2, 2025
71b9f33
websocket timer change
blessing-sanusi Sep 2, 2025
0f310be
Merge branch 'macae-UIWS-wip2' of https://github.com/microsoft/Multi-…
marktayl1 Sep 2, 2025
9bb827e
Changes from Francia plus fix
marktayl1 Sep 2, 2025
7025482
remove headerbuilder logging
marktayl1 Sep 2, 2025
af3086d
Refactor WebSocketService authentication and cleanup
Fr4nc3 Sep 2, 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
4 changes: 2 additions & 2 deletions data/agent_teams/hr.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "3",
"team_id": "team-3",
"name": "Retail Customer Success Team",
"name": "Human Resources Team",
"status": "visible",
"created": "",
"created_by": "",
Expand Down Expand Up @@ -43,7 +43,7 @@
"input_key": "",
"type": "",
"name": "ProxyAgent",
"deployment_name": "",
"deployment_name": "gpt-4.1",
"icon": "",
"system_message": "",
"description": "",
Expand Down
48 changes: 48 additions & 0 deletions data/agent_teams/new 29.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Tasks:

Done: Make 3 teams upload work to cosmos (HR, Marketing, Retail). We will load this Cosmos data on deploy as default teams.
Done: - call "/socket/{process_id}" (start_comms) to setup websocket
Done: Make sure that a team is always selected - start with the hr.json team

call init_team API for the currently loaded team on App start -
Spinner / team-loading should display until this call returns (user should not be able to input tasks)
<takes about 20 seconds> - say something like "team loading" with spinner
FE: send unload current team API and call init team for team switch - sending select_team(new team id)
spin while waiting for return of API
BE: unload old team - load new team - return status

BE: For Francia - implement get_plans to fill in history from cosmos

BE: Create a teams container in Cosmos and move all loaded team definitions there

Implement saving of plan to cosmos -> history in...

================ Request submit flow ======================
on request submission call "/create_plan" (process_request)
This will return immediately - move to other page and display spinner -> "creating plan"
Socket will start receiving messages ->
Stream plan output into main window

Will receive the PlanApprovalRequest message
Enable accept / reject UI
Send PlanApprovalResponse message when user answers

If not approved
BE: plan will cancel on backend
FE: - enable input again for fresh request
Call input_request API on backend again (just like inputing any request)

If approved:
Display plan steps in right pane if approved
=============================================================

================== Message Streaming ========================
Process socket message routing to display agent output
See message types in src\backend\v3\models\messages.py
for each message from agent - process stream then rollup

On FinalResultMessage
display final result with all agent output in rollups by agent above
==============================================================


34 changes: 34 additions & 0 deletions docs/mcp_server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Capturing the notes from auth install before deleting for docs...

### Auth section:
Requires and app registration as in azure_app_service_auth_setup.md so not deployed by default.

To setup basic auth with FastMCP - bearer token - you can integrate with Azure by using it as your token provider.

``` from fastmcp.server.auth import JWTVerifier```

```
auth = JWTVerifier(
jwks_uri="https://login.microsoftonline.com/52b39610-0746-4c25-a83d-d4f89fadedfe/discovery/v2.0/keys",
#issuer="https://login.microsoftonline.com/52b39610-0746-4c25-a83d-d4f89fadedfe/v2.0",
# This issuer is not correct in the docs. Found by decoding the token.
issuer="https://sts.windows.net/52b39610-0746-4c25-a83d-d4f89fadedfe/",
algorithm="RS256",
audience="api://7a95e70b-062e-4cd3-a88c-603fc70e1c73"
)
```

Requires env vars:
```
export MICROSOFT_CLIENT_ID="your-client-id"
export MICROSOFT_CLIENT_SECRET="your-client-secret"
export MICROSOFT_TENANT="common" # Or your tenant ID
```

```mcp = FastMCP("My MCP Server", auth=auth)```

For more complex and production - supports OAuth and PKCE

Enabled through MCP enabled base - see lifecycle.py


14 changes: 12 additions & 2 deletions src/backend/.env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ AZURE_AI_AGENT_ENDPOINT=
AZURE_BING_CONNECTION_NAME=
REASONING_MODEL_NAME=o3
APP_ENV=dev
MCP_SERVER_ENDPOINT=http://localhost:9000/mcp
MCP_SERVER_ENDPOINT=http://localhost:8080/mcp
MCP_SERVER_NAME=MyMC
MCP_SERVER_DESCRIPTION=My MCP Server
TENANT_ID=
CLIENT_ID=
BACKEND_API_URL=http://localhost:8000
FRONTEND_SITE_NAME=*
FRONTEND_SITE_NAME=
SUPPORTED_MODELS='["o3","o4-mini","gpt-4.1","gpt-4.1-mini"]'
AZURE_AI_SEARCH_CONNECTION_NAME=
AZURE_AI_SEARCH_INDEX_NAME=
AZURE_AI_SEARCH_ENDPOINT=
AZURE_AI_SEARCH_API_KEY=
BING_CONNECTION_NAME=
Loading
Loading