Commit Graph

300 Commits

Author SHA1 Message Date
Luca Beurer-Kellner 99b5497b81 factor out platform-specific stdin waiting 2025-05-20 22:45:56 +02:00
Luca Beurer-Kellner 1b6e01b8f5 use windows select 2025-05-20 20:36:28 +02:00
Luca Beurer-Kellner 2060f18b0a Update pyproject.toml 2025-05-19 14:22:56 +02:00
Luca Beurer-Kellner e18c6b5bdb Add an option to add extra metadata that is pushed and passed to Guardrails during an MCP session (#47)
* use select() before readline

* support for setting static metadata for MCP sessions

* nest extra mcp metadata in metadata object

* unify session metadata

* extra metadata tests

* use empty object as parameters, if None

* list_tools as tool call

* offset indices in tests

* test: adjust addresses

* mcp: make error reporting configurable

* line logging

* log version

* verbose logging + loud exception failure

* add server and client name to policy get

* append trace even if not pushing

* port tools/list message support to SSE

* use python -m build

* adjust guardrail failure address

* support for blocking tools/list in SSE

* use error-based failure response format by default

* tools/list test

* don't list_tools in stdio connect

* flaky test: handle second possible result in anthropic streaming case

---------

Co-authored-by: knielsen404 <kristian@invariantlabs.ai>
2025-05-19 13:44:37 +02:00
Hemang 4dbb400620 Move invariant api key check to __main__.py so that the same check can work for both mcp and server commands. 2025-05-16 14:33:00 +05:30
Hemang f33b2392f6 Fix the Dockerfle for gateway to copy correctly. 2025-05-16 14:33:00 +05:30
Hemang 780e5f6ee7 Skip test_generate_content_with_image for gemini. Getting 500. 2025-05-16 14:33:00 +05:30
Hemang 876eb44c78 Make MCP stdio gateway fully async. With sync and async mixed behaviour for running background tasks we were running into issues. 2025-05-16 14:33:00 +05:30
Hemang Sarkar a6c1124076 Update test_mcp.py 2025-05-15 15:00:31 +05:30
Hemang Sarkar 0ffde69391 Fix test_mcp_sse_with_gateway_hybrid_guardrails so that we don't rely on order of annotations. 2025-05-15 15:00:31 +05:30
Hemang a214837b1e Add message to session store for MCP sse in post path before returning. 2025-05-14 15:44:52 +02:00
Hemang Sarkar fefc22eea0 Update test_mcp.py to include the transport parameter in the hybrid guardrails test. 2025-05-14 15:32:05 +02:00
Hemang e32ec74ed2 Fix paths to pyproject.toml and README in dockerfile.gateway. Also update context in publish-images.yml 2025-05-14 18:05:14 +05:30
Hemang ed50670bef Add MCP gateway tests with hybrid guardrails (both blocking and logging). Also refactor tests so that we can parameterize the transport type - stdio or sse. 2025-05-14 18:05:14 +05:30
Hemang 8eae198eb0 Add integration tests for MCP SSE via gateway with guardrails. 2025-05-14 14:21:48 +05:30
Hemang e2e004b7b1 Move dockerfiles inside gateway/ and update main CLI script to be able to run build, up, down and logs on a local gateway server instance. 2025-05-14 14:21:48 +05:30
Hemang Sarkar 73de68e822 Update tests_ci.yml with a timeout at the job level. 2025-05-12 15:36:33 +02:00
Hemang dbab86e0ac Fix broken tests. 2025-05-09 12:17:14 +05:30
Hemang edd9fd9a5c When tool_call is blocked in MCP Post method, add the error message to a pending error messages list. Create two queues in the MCP SSE Get endpoint which correspond to the MCP server events and these pending error messages. These two queues are merged to return events back to the client. 2025-05-09 11:05:33 +05:30
Hemang 794aae0326 Add MCP guardrailing for SSE. 2025-05-08 20:40:28 +05:30
Hemang 40ec6d2db2 Add MCP SSE server proxying in gateway. 2025-05-08 14:11:22 +05:30
Hemang 132eedab0a Update tests_ci.yml so that the CI run fails even when unit tests fail. 2025-05-07 02:03:06 +05:30
Hemang d057aa5c37 Add httpx as unit test dependencies. 2025-05-07 01:27:13 +05:30
Hemang 1f6e2ed7fb Update streaming in anthropic route to handle chunks with incomplete events. Introduce an sse_buffer which keeps track of the current incomplete event from the last processed chunk. 2025-05-07 01:08:15 +05:30
Hemang aec7808e3e Fix broken integration tests. 2025-05-07 01:08:15 +05:30
Hemang dc9ac9c3c6 Fix broken unit tests. 2025-05-07 01:08:15 +05:30
Hemang e64a977d87 Properly propagate the integrations test and unit test exit code. 2025-05-06 20:10:45 +05:30
Luca Beurer-Kellner 86ec75ba2d use select() before readline (#45) 2025-05-06 16:07:50 +02:00
Hemang 88ba17a803 Move MCP testing stdio server and client into a separate folder. 2025-04-29 15:56:37 +05:30
Hemang dbeb4bc660 Add blocking guardrails based test for MCP gateway. 2025-04-29 09:00:04 +02:00
Hemang d877e5a1e6 Add logging guardrails based test for MCP gateway. 2025-04-29 09:00:04 +02:00
Hemang d983b7431b Add tests for MCP integration in gateway. 2025-04-29 09:00:04 +02:00
Hemang 61c12a4340 Version 0.0.4 2025-04-24 15:48:36 +02:00
Hemang 52f5359d36 Add MCP client and server names in trace metadata for Explorer. 2025-04-24 15:48:36 +02:00
Hemang 7287065940 Improve on request reads from byte by byte to line by line. 2025-04-24 15:48:36 +02:00
knielsen404 55874d552e feat: append_and_push_trace uses configurable API URL 2025-04-23 13:08:57 +01:00
Kristian Nielsen ed63a4b592 fix typo (#42) 2025-04-23 09:28:45 +01:00
Marco Milanta da76fd516a next version 2025-04-17 15:01:40 +02:00
Marco Milanta 12932787b2 fix: print breaks claude
remove print statment
2025-04-17 15:00:34 +02:00
Marco Milanta 20d1e0afd4 fix: print breaks claude 2025-04-17 14:59:59 +02:00
Hemang Sarkar 2b9785de11 Update README.md 2025-04-17 10:05:28 +02:00
Hemang 45d384b7a3 Update README for mcp. 2025-04-17 09:54:26 +02:00
Hemang 8a83133edf Update the CLI script command. 2025-04-17 09:38:22 +02:00
Hemang 8cc72db6ba Add PyPi publish action. 2025-04-17 07:36:41 +02:00
Hemang e8deb8feda Rename dataset-name flag for MCP to project-name and change CLI command to run mcp 2025-04-17 07:15:28 +02:00
Hemang 2c34205c4c Fix asyncio and threading. Dedupe annotations before pushing. Add README. 2025-04-17 07:15:28 +02:00
Hemang f871e24473 Remove invariant-ai from deps. 2025-04-17 07:15:28 +02:00
Hemang 66c6dcb8f9 Add mcp.py 2025-04-17 07:15:28 +02:00
Hemang 15210997a7 Add the invariant-gateway CLI script. 2025-04-17 07:15:28 +02:00
Hemang 5bf121bbda Use pyproject.toml instead of requirements.txt and fix some broken tests. 2025-04-17 07:15:28 +02:00