FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python-sdk/docs_src/client_callbacks/tutorial003.py at main · stophobia/python-sdk · GitHub
stophobia
/
python-sdk
Public
forked from
modelcontextprotocol/python-sdk
Notifications
You must be signed in to change notification settings
Fork
0
Star
1
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
python-sdk
/
docs_src
/
client_callbacks
/
tutorial003.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
31 lines (23 loc) · 1.02 KB
Breadcrumbs
python-sdk
/
docs_src
/
client_callbacks
/
tutorial003.py
Copy path
File metadata and controls
31 lines (23 loc) · 1.02 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from
pydantic
import
BaseModel
from
mcp
.
server
import
MCPServer
from
mcp
.
server
.
mcpserver
import
Context
from
mcp
.
types
import
ClientCapabilities
,
ElicitationCapability
,
RootsCapability
,
SamplingCapability
mcp
=
MCPServer
(
"Library"
)
class
CardHolder
(
BaseModel
):
name
:
str
@
mcp
.
tool
()
async
def
issue_card
(
ctx
:
Context
)
->
str
:
"""Issue a new library card."""
answer
=
await
ctx
.
elicit
(
"What name should go on the card?"
,
schema
=
CardHolder
)
if
answer
.
action
==
"accept"
:
return
f"Card issued to
{
answer
.
data
.
name
}
."
return
"No card issued."
@
mcp
.
tool
()
def
client_features
(
ctx
:
Context
)
->
list
[
str
]:
"""Which optional features the connected client declared."""
declared
=
{
"elicitation"
:
ClientCapabilities
(
elicitation
=
ElicitationCapability
()),
"sampling"
:
ClientCapabilities
(
sampling
=
SamplingCapability
()),
"roots"
:
ClientCapabilities
(
roots
=
RootsCapability
()),
}
return
[
name
for
name
,
capability
in
declared
.
items
()
if
ctx
.
session
.
check_client_capability
(
capability
)]
Back
|
FazBrowse Home
|
New Git URL