Commit d7e40dd
committed
feat(security-agent-mcp-server): Add custom User-Agent for API usage tracking
Add a custom User-Agent string to all boto3 API calls made by the
security-agent-mcp-server. The User-Agent includes:
- MCP server name and version (awslabs-security-agent-mcp-server/X.Y.Z)
- Calling MCP client name and version (e.g. kiro/1.5.0, claude-code/1.0)
This enables service-side tracking of API usage originating from the
local MCP server, broken down by which IDE/tool invoked it.
The client identity is extracted from the MCP protocol clientInfo field
sent during the initialize handshake. Falls back to unknown when
clientInfo is not available.
Changes:
- aws_client.py: Added botocore.config.Config with user_agent_extra
to all boto3 client calls (securityagent, sts, s3, iam). Added
set_mcp_client_info() for lazy injection after MCP init.
- server.py: Added _ensure_client_ua(ctx) that extracts clientInfo
from the MCP session context and injects it into the AWS client
on the first tool invocation.1 parent 1ea4990 commit d7e40dd
4 files changed
Lines changed: 274 additions & 8 deletions
File tree
- src/security-agent-mcp-server
- awslabs/security_agent_mcp_server
- tests
Lines changed: 52 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
23 | 27 | | |
24 | 28 | | |
25 | 29 | | |
26 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
27 | 36 | | |
28 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
29 | 74 | | |
30 | 75 | | |
31 | 76 | | |
32 | 77 | | |
33 | 78 | | |
34 | 79 | | |
35 | | - | |
36 | | - | |
| 80 | + | |
| 81 | + | |
37 | 82 | | |
38 | 83 | | |
39 | 84 | | |
| |||
50 | 95 | | |
51 | 96 | | |
52 | 97 | | |
53 | | - | |
| 98 | + | |
54 | 99 | | |
55 | 100 | | |
56 | 101 | | |
| |||
224 | 269 | | |
225 | 270 | | |
226 | 271 | | |
227 | | - | |
| 272 | + | |
228 | 273 | | |
229 | 274 | | |
230 | 275 | | |
| |||
287 | 332 | | |
288 | 333 | | |
289 | 334 | | |
290 | | - | |
| 335 | + | |
291 | 336 | | |
292 | 337 | | |
293 | 338 | | |
| |||
347 | 392 | | |
348 | 393 | | |
349 | 394 | | |
350 | | - | |
| 395 | + | |
351 | 396 | | |
Lines changed: 41 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
21 | 24 | | |
22 | 25 | | |
23 | 26 | | |
| |||
140 | 143 | | |
141 | 144 | | |
142 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
143 | 172 | | |
144 | 173 | | |
145 | 174 | | |
| |||
181 | 210 | | |
182 | 211 | | |
183 | 212 | | |
| 213 | + | |
184 | 214 | | |
185 | 215 | | |
186 | 216 | | |
| |||
263 | 293 | | |
264 | 294 | | |
265 | 295 | | |
| 296 | + | |
266 | 297 | | |
267 | 298 | | |
268 | 299 | | |
| |||
339 | 370 | | |
340 | 371 | | |
341 | 372 | | |
| 373 | + | |
342 | 374 | | |
343 | 375 | | |
344 | 376 | | |
| |||
393 | 425 | | |
394 | 426 | | |
395 | 427 | | |
| 428 | + | |
396 | 429 | | |
397 | 430 | | |
398 | 431 | | |
| |||
447 | 480 | | |
448 | 481 | | |
449 | 482 | | |
| 483 | + | |
450 | 484 | | |
451 | 485 | | |
452 | 486 | | |
| |||
492 | 526 | | |
493 | 527 | | |
494 | 528 | | |
| 529 | + | |
495 | 530 | | |
496 | 531 | | |
497 | 532 | | |
| |||
521 | 556 | | |
522 | 557 | | |
523 | 558 | | |
| 559 | + | |
524 | 560 | | |
525 | 561 | | |
526 | 562 | | |
| |||
539 | 575 | | |
540 | 576 | | |
541 | 577 | | |
| 578 | + | |
542 | 579 | | |
543 | 580 | | |
544 | 581 | | |
| |||
558 | 595 | | |
559 | 596 | | |
560 | 597 | | |
| 598 | + | |
561 | 599 | | |
562 | 600 | | |
563 | 601 | | |
| |||
588 | 626 | | |
589 | 627 | | |
590 | 628 | | |
| 629 | + | |
591 | 630 | | |
592 | 631 | | |
593 | 632 | | |
| |||
619 | 658 | | |
620 | 659 | | |
621 | 660 | | |
| 661 | + | |
622 | 662 | | |
623 | 663 | | |
624 | 664 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
457 | 457 | | |
458 | 458 | | |
459 | 459 | | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
0 commit comments