Commit graph

15 commits

Author SHA1 Message Date
Kashyap Murali
42909a5a0e
fix: Fix linting issues in examples (whitespace and imports) 2025-09-02 16:17:49 -07:00
Kashyap Murali
95775ac657
feat: Add SDK MCP server support on top of control protocol
- Rebased SDK MCP implementation onto PR #139's control protocol refactoring
- Moved SDK MCP handling from Transport to Query class for proper layering
- Transport now only filters SDK servers from CLI config
- Query class handles SDK MCP control requests via _handle_sdk_mcp_request
- Added tool decorator and create_sdk_mcp_server API functions
- Added McpSdkServerConfig type definition
- Updated documentation with SDK MCP examples
- Added integration tests for SDK MCP functionality

This implementation properly layers SDK MCP on top of the bidirectional control protocol from PR #139, ensuring clean separation between transport (I/O) and query (protocol) layers.
2025-08-31 20:46:28 -07:00
Dickson Tsai
cc81142feb
Fix example not to background 2025-08-29 19:53:36 -07:00
Dickson Tsai
d40261c8d5
Bubble up initialization message 2025-08-29 19:31:47 -07:00
Abhijeeth Padarthi
a801a33086
simplify example with interrupt (#127)
This PR simplifies the example with interrupt. 
There is a flag interrupt_sent that isn't required since the execution
loop will terminate after interrupt with the following message:
`{"content": [{"type": "text", "text": "[Request interrupted by
user]"}]}`
2025-08-29 18:08:13 -07:00
Suzanne Wang
f794e17e78
Add support for custom env vars (#131)
Some checks failed
Lint / lint (push) Has been cancelled
Test / test (3.10) (push) Has been cancelled
Test / test (3.11) (push) Has been cancelled
Test / test (3.12) (push) Has been cancelled
Test / test (3.13) (push) Has been cancelled
## Key changes
- Adds env field to `ClaudeCodeOptions`, allowing custom env vars to cli
- Updates tests and examples

## Motivation
Bringing Python SDK to feature parity with TS SDK, which supports custom
env vars

## Notes
- Environment variables are merged in order: system env → user env → SDK
required vars
- This implementation seems slightly more robust than the TypeScript
version, which can exclude OS envs vars if a user passes a minimal env
object
- Some linting changes seem to have been picked up
2025-08-25 14:02:03 -07:00
Dickson Tsai
fa3962de3f
Improve UserMessage types to include ToolResultBlock (#101)
Fixes https://github.com/anthropics/claude-code-sdk-python/issues/90
2025-07-31 07:51:39 -07:00
Dickson Tsai
5f8351fce9
Make streaming implementation trio-compatible (#84)
Some checks are pending
Lint / lint (push) Waiting to run
Test / test (3.10) (push) Waiting to run
Test / test (3.11) (push) Waiting to run
Test / test (3.12) (push) Waiting to run
Test / test (3.13) (push) Waiting to run
## Summary
- Replace asyncio.create_task() with anyio task group for trio
compatibility
- Update client.py docstring example to use anyio.sleep
- Add trio example demonstrating multi-turn conversation

## Details
The SDK already uses anyio for most async operations, but one line was
using asyncio.create_task() which broke trio compatibility. This PR
fixes that by using anyio's task group API with proper lifecycle
management.

### Changes:
1. **subprocess_cli.py**: Replace asyncio.create_task() with anyio task
group, ensuring proper cleanup on disconnect
2. **client.py**: Update docstring example to use anyio.sleep instead of
asyncio.sleep
3. **streaming_mode_trio.py**: Add new example showing how to use the
SDK with trio

## Test plan
- [x] All existing tests pass
- [x] Manually tested with trio runtime (created test script that
successfully runs multi-turn conversation)
- [x] Linting and type checking pass

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-07-22 23:31:42 -07:00
Dickson Tsai
b57e05afa5
Improve examples 2025-07-19 19:57:17 -07:00
Dickson Tsai
6c25bf7d37
Fix examples 2025-07-19 13:44:53 -07:00
Dickson Tsai
361c7e0be3
Working examples 2025-07-19 13:23:53 -07:00
Dickson Tsai
6dd12b0df8
Implement proper client and bidi streaming 2025-07-19 10:43:23 -07:00
Julian LaNeve
f868c59c72
cost_usd -> total_cost_usd in example 2025-06-25 15:18:52 -04:00
Lina Tawfik
63ef121e18
Fix code formatting for CI 2025-06-12 00:20:28 -07:00
Lina Tawfik
6ca3514261
Initial Python SDK import 2025-06-12 00:16:19 -07:00