mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 07:09:11 +02:00
Update repository references for transfer to prefecthq (#3207)
* Update repository references from jlowin/fastmcp to prefecthq/fastmcp * Retrigger CI after repo transfer * chore: Update SDK documentation * Only run deep triage on bug issues for jlowin --------- Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
This commit is contained in:
parent
3a4d41346c
commit
9b248a15b3
220 changed files with 3779 additions and 3765 deletions
7
.github/workflows/martian-triage-issue.yml
vendored
7
.github/workflows/martian-triage-issue.yml
vendored
|
|
@ -10,7 +10,8 @@ on:
|
||||||
jobs:
|
jobs:
|
||||||
triage:
|
triage:
|
||||||
if: |
|
if: |
|
||||||
contains(fromJSON('["jlowin", "strawgate"]'), github.event.issue.user.login)
|
github.event.issue.user.login == 'strawgate' ||
|
||||||
|
(github.event.issue.user.login == 'jlowin' && contains(toJSON(github.event.issue.labels.*.name), 'bug'))
|
||||||
concurrency:
|
concurrency:
|
||||||
group: triage-issue-${{ github.event.issue.number }}
|
group: triage-issue-${{ github.event.issue.number }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
@ -166,8 +167,8 @@ jobs:
|
||||||
|
|
||||||
| Repository | Issue or PR | Relevance |
|
| Repository | Issue or PR | Relevance |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| jlowin/fastmcp | [Add matrix operations support](https://github.com/jlowin/fastmcp/pull/680) | This pull request directly addresses the feature request for adding matrix operations to the calculator. |
|
| prefecthq/fastmcp | [Add matrix operations support](https://github.com/prefecthq/fastmcp/pull/680) | This pull request directly addresses the feature request for adding matrix operations to the calculator. |
|
||||||
| jlowin/fastmcp | [Add matrix operations support](https://github.com/jlowin/fastmcp/issues/681) | This issue directly addresses the feature request for adding matrix operations to the calculator. |
|
| prefecthq/fastmcp | [Add matrix operations support](https://github.com/prefecthq/fastmcp/issues/681) | This issue directly addresses the feature request for adding matrix operations to the calculator. |
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,10 @@
|
||||||
[](https://gofastmcp.com)
|
[](https://gofastmcp.com)
|
||||||
[](https://discord.gg/uu8dJCgttd)
|
[](https://discord.gg/uu8dJCgttd)
|
||||||
[](https://pypi.org/project/fastmcp)
|
[](https://pypi.org/project/fastmcp)
|
||||||
[](https://github.com/jlowin/fastmcp/actions/workflows/run-tests.yml)
|
[](https://github.com/prefecthq/fastmcp/actions/workflows/run-tests.yml)
|
||||||
[](https://github.com/jlowin/fastmcp/blob/main/LICENSE)
|
[](https://github.com/prefecthq/fastmcp/blob/main/LICENSE)
|
||||||
|
|
||||||
<a href="https://trendshift.io/repositories/13266" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13266" alt="jlowin%2Ffastmcp | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
<a href="https://trendshift.io/repositories/13266" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13266" alt="prefecthq%2Ffastmcp | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,6 @@ FastMCP v2.x receives security updates. Earlier versions are no longer supported
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
Please report security vulnerabilities privately using [GitHub's security advisory feature](https://github.com/jlowin/fastmcp/security/advisories/new).
|
Please report security vulnerabilities privately using [GitHub's security advisory feature](https://github.com/prefecthq/fastmcp/security/advisories/new).
|
||||||
|
|
||||||
Do not open public issues for security concerns.
|
Do not open public issues for security concerns.
|
||||||
|
|
|
||||||
2758
docs/changelog.mdx
2758
docs/changelog.mdx
File diff suppressed because it is too large
Load diff
|
|
@ -168,5 +168,5 @@ client = Client(
|
||||||
Tool execution happens on the server side. The client's role is to pass tools to the LLM and return the LLM's response (which may include tool use requests). The server then executes the tools and may send follow-up sampling requests with tool results.
|
Tool execution happens on the server side. The client's role is to pass tools to the LLM and return the LLM's response (which may include tool use requests). The server then executes the tools and may send follow-up sampling requests with tool results.
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
To implement a custom sampling handler, see the [handler source code](https://github.com/jlowin/fastmcp/tree/main/src/fastmcp/client/sampling/handlers) as a reference.
|
To implement a custom sampling handler, see the [handler source code](https://github.com/prefecthq/fastmcp/tree/main/src/fastmcp/client/sampling/handlers) as a reference.
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ Discover exemplary MCP servers and implementations created by our community. The
|
||||||
|
|
||||||
### Community Examples
|
### Community Examples
|
||||||
|
|
||||||
Have you built something interesting with FastMCP? We'd love to feature high-quality examples here! Start a [discussion on GitHub](https://github.com/jlowin/fastmcp/discussions) to share your project.
|
Have you built something interesting with FastMCP? We'd love to feature high-quality examples here! Start a [discussion on GitHub](https://github.com/prefecthq/fastmcp/discussions) to share your project.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|
@ -56,7 +56,7 @@ To get your project featured:
|
||||||
1. Ensure your project demonstrates best practices
|
1. Ensure your project demonstrates best practices
|
||||||
2. Include comprehensive documentation
|
2. Include comprehensive documentation
|
||||||
3. Add clear usage examples
|
3. Add clear usage examples
|
||||||
4. Open a discussion in our [GitHub Discussions](https://github.com/jlowin/fastmcp/discussions)
|
4. Open a discussion in our [GitHub Discussions](https://github.com/prefecthq/fastmcp/discussions)
|
||||||
|
|
||||||
We review submissions regularly and feature projects that provide value to the FastMCP community.
|
We review submissions regularly and feature projects that provide value to the FastMCP community.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ To contribute to FastMCP, you'll need to set up a development environment with a
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repository
|
# Clone the repository
|
||||||
git clone https://github.com/jlowin/fastmcp.git
|
git clone https://github.com/prefecthq/fastmcp.git
|
||||||
cd fastmcp
|
cd fastmcp
|
||||||
|
|
||||||
# Install all dependencies including dev tools
|
# Install all dependencies including dev tools
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ async def test_github_api_integration():
|
||||||
|
|
||||||
# Test against real GitHub API
|
# Test against real GitHub API
|
||||||
client = GitHubClient(token)
|
client = GitHubClient(token)
|
||||||
repos = await client.list_repos("jlowin")
|
repos = await client.list_repos("prefecthq")
|
||||||
assert "fastmcp" in [repo.name for repo in repos]
|
assert "fastmcp" in [repo.name for repo in repos]
|
||||||
|
|
||||||
@pytest.mark.client_process
|
@pytest.mark.client_process
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,16 @@ This guide covers breaking changes and migration steps when upgrading FastMCP.
|
||||||
|
|
||||||
For most servers, upgrading to v3 requires a single change: swap `from mcp.server.fastmcp import FastMCP` for `from fastmcp import FastMCP`. Everything below covers the less common cases.
|
For most servers, upgrading to v3 requires a single change: swap `from mcp.server.fastmcp import FastMCP` for `from fastmcp import FastMCP`. Everything below covers the less common cases.
|
||||||
|
|
||||||
|
<Info>
|
||||||
|
**New repository home.** As part of the v3 release, FastMCP's GitHub repository now lives at [`prefecthq/fastmcp`](https://github.com/prefecthq/fastmcp) under [Prefect](https://prefect.io)'s stewardship. GitHub automatically redirects existing clones and bookmarks, so nothing breaks — but you can update your local remote whenever convenient:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git remote set-url origin https://github.com/prefecthq/fastmcp.git
|
||||||
|
```
|
||||||
|
|
||||||
|
If you reference the repository URL in dependency specifications (e.g., `git+https://github.com/jlowin/fastmcp.git`), update those to the new location.
|
||||||
|
</Info>
|
||||||
|
|
||||||
<Prompt description="Copy this prompt into any LLM along with your server code to get automated migration guidance.">
|
<Prompt description="Copy this prompt into any LLM along with your server code to get automated migration guidance.">
|
||||||
You are migrating a FastMCP v2 server to FastMCP v3.0. Analyze the provided code and identify every change needed. The full upgrade guide is at https://gofastmcp.com/development/upgrade-guide — fetch it for complete context.
|
You are migrating a FastMCP v2 server to FastMCP v3.0. Analyze the provided code and identify every change needed. The full upgrade guide is at https://gofastmcp.com/development/upgrade-guide — fetch it for complete context.
|
||||||
|
|
||||||
|
|
@ -95,7 +105,7 @@ The full list of removed kwargs and their replacements:
|
||||||
|
|
||||||
**OAuth storage backend changed (diskcache CVE)**
|
**OAuth storage backend changed (diskcache CVE)**
|
||||||
|
|
||||||
The default OAuth client storage has moved from `DiskStore` to `FileTreeStore` to address a pickle deserialization vulnerability in diskcache ([CVE-2025-69872](https://github.com/jlowin/fastmcp/issues/3166)).
|
The default OAuth client storage has moved from `DiskStore` to `FileTreeStore` to address a pickle deserialization vulnerability in diskcache ([CVE-2025-69872](https://github.com/prefecthq/fastmcp/issues/3166)).
|
||||||
|
|
||||||
If you were using the default storage (i.e., not passing an explicit `client_storage`), clients will need to re-register on their first connection after upgrading. This happens automatically — no user action required, and it's the same flow that already occurs whenever a server restarts with in-memory storage.
|
If you were using the default storage (i.e., not passing an explicit `client_storage`), clients will need to re-register on their first connection after upgrading. This happens automatically — no user action required, and it's the same flow that already occurs whenever a server restarts with in-memory storage.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ This document tracks major features in FastMCP v3.0 for release notes preparatio
|
||||||
|
|
||||||
### SamplingTool Conversion Helpers
|
### SamplingTool Conversion Helpers
|
||||||
|
|
||||||
Server tools (FunctionTool and TransformedTool) can now be passed directly to sampling methods via `SamplingTool.from_callable_tool()` ([#3062](https://github.com/jlowin/fastmcp/pull/3062)). Previously, tools defined with `@mcp.tool` had to be recreated as functions for use in `ctx.sample()`. Now `ctx.sample()` and `ctx.sample_step()` accept these tool instances directly.
|
Server tools (FunctionTool and TransformedTool) can now be passed directly to sampling methods via `SamplingTool.from_callable_tool()` ([#3062](https://github.com/prefecthq/fastmcp/pull/3062)). Previously, tools defined with `@mcp.tool` had to be recreated as functions for use in `ctx.sample()`. Now `ctx.sample()` and `ctx.sample_step()` accept these tool instances directly.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@mcp.tool
|
@mcp.tool
|
||||||
|
|
@ -25,7 +25,7 @@ result = await ctx.sample(
|
||||||
|
|
||||||
### Concurrent Tool Execution in Sampling
|
### Concurrent Tool Execution in Sampling
|
||||||
|
|
||||||
When an LLM returns multiple tool calls in a single sampling response, they can now be executed concurrently ([#3022](https://github.com/jlowin/fastmcp/pull/3022)). Default behavior remains sequential; opt in with `tool_concurrency`. Tools can declare `sequential=True` to force sequential execution even when concurrency is enabled.
|
When an LLM returns multiple tool calls in a single sampling response, they can now be executed concurrently ([#3022](https://github.com/prefecthq/fastmcp/pull/3022)). Default behavior remains sequential; opt in with `tool_concurrency`. Tools can declare `sequential=True` to force sequential execution even when concurrency is enabled.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
result = await context.sample(
|
result = await context.sample(
|
||||||
|
|
@ -37,7 +37,7 @@ result = await context.sample(
|
||||||
|
|
||||||
### OpenAPI `validate_output` Option
|
### OpenAPI `validate_output` Option
|
||||||
|
|
||||||
`OpenAPIProvider` and `FastMCP.from_openapi()` now accept `validate_output=False` to skip output schema validation ([#3134](https://github.com/jlowin/fastmcp/pull/3134)). Useful when backends don't conform to their own OpenAPI response schemas — structured JSON still flows through, only the strict schema checking is disabled.
|
`OpenAPIProvider` and `FastMCP.from_openapi()` now accept `validate_output=False` to skip output schema validation ([#3134](https://github.com/prefecthq/fastmcp/pull/3134)). Useful when backends don't conform to their own OpenAPI response schemas — structured JSON still flows through, only the strict schema checking is disabled.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
mcp = FastMCP.from_openapi(
|
mcp = FastMCP.from_openapi(
|
||||||
|
|
@ -49,7 +49,7 @@ mcp = FastMCP.from_openapi(
|
||||||
|
|
||||||
### Auth Token Injection and Azure OBO Dependencies
|
### Auth Token Injection and Azure OBO Dependencies
|
||||||
|
|
||||||
New dependency injection for accessing the authenticated user's token directly in tool parameters ([#2918](https://github.com/jlowin/fastmcp/pull/2918)). Works with any auth provider.
|
New dependency injection for accessing the authenticated user's token directly in tool parameters ([#2918](https://github.com/prefecthq/fastmcp/pull/2918)). Works with any auth provider.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp.server.dependencies import CurrentAccessToken, TokenClaim
|
from fastmcp.server.dependencies import CurrentAccessToken, TokenClaim
|
||||||
|
|
@ -77,19 +77,19 @@ async def get_emails(
|
||||||
|
|
||||||
### `generate-cli` Agent Skill Generation
|
### `generate-cli` Agent Skill Generation
|
||||||
|
|
||||||
`fastmcp generate-cli` now produces a `SKILL.md` alongside the CLI script ([#3115](https://github.com/jlowin/fastmcp/pull/3115)) — a Claude Code agent skill with pre-computed invocation syntax for every tool. Agents reading the skill can call tools immediately without running `--help`. On by default; pass `--no-skill` to opt out.
|
`fastmcp generate-cli` now produces a `SKILL.md` alongside the CLI script ([#3115](https://github.com/prefecthq/fastmcp/pull/3115)) — a Claude Code agent skill with pre-computed invocation syntax for every tool. Agents reading the skill can call tools immediately without running `--help`. On by default; pass `--no-skill` to opt out.
|
||||||
|
|
||||||
### Background Task Notification Queue
|
### Background Task Notification Queue
|
||||||
|
|
||||||
Background tasks now use a distributed Redis notification queue for reliable delivery ([#2906](https://github.com/jlowin/fastmcp/pull/2906)). Elicitation switches from polling to BLPOP (single blocking call instead of ~7,200 round-trips/hour), and notification delivery retries up to 3x with TTL-based expiration.
|
Background tasks now use a distributed Redis notification queue for reliable delivery ([#2906](https://github.com/prefecthq/fastmcp/pull/2906)). Elicitation switches from polling to BLPOP (single blocking call instead of ~7,200 round-trips/hour), and notification delivery retries up to 3x with TTL-based expiration.
|
||||||
|
|
||||||
### Async Auth Checks
|
### Async Auth Checks
|
||||||
|
|
||||||
Auth check functions can now be `async`, enabling authorization decisions that depend on asynchronous operations like reading server state via `Context.get_state` or calling external services ([#3150](https://github.com/jlowin/fastmcp/issues/3150)). Sync and async checks can be freely mixed. Previously, passing an async function as an auth check would silently pass (coroutine objects are truthy).
|
Auth check functions can now be `async`, enabling authorization decisions that depend on asynchronous operations like reading server state via `Context.get_state` or calling external services ([#3150](https://github.com/prefecthq/fastmcp/issues/3150)). Sync and async checks can be freely mixed. Previously, passing an async function as an auth check would silently pass (coroutine objects are truthy).
|
||||||
|
|
||||||
### Optional `$ref` Dereferencing in Schemas
|
### Optional `$ref` Dereferencing in Schemas
|
||||||
|
|
||||||
Schema `$ref` dereferencing — which inlines all `$defs` for compatibility with MCP clients that don't handle `$ref` — is now controlled by the `dereference_schemas` constructor kwarg ([#3141](https://github.com/jlowin/fastmcp/issues/3141)). Default is `True` (dereference on) because the non-compliant clients are popular and the failure mode is silent breakage that server authors can't diagnose. Opt out when you know your clients handle `$ref` and want smaller schemas:
|
Schema `$ref` dereferencing — which inlines all `$defs` for compatibility with MCP clients that don't handle `$ref` — is now controlled by the `dereference_schemas` constructor kwarg ([#3141](https://github.com/prefecthq/fastmcp/issues/3141)). Default is `True` (dereference on) because the non-compliant clients are popular and the failure mode is silent breakage that server authors can't diagnose. Opt out when you know your clients handle `$ref` and want smaller schemas:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
mcp = FastMCP("my-server", dereference_schemas=False)
|
mcp = FastMCP("my-server", dereference_schemas=False)
|
||||||
|
|
@ -125,7 +125,7 @@ The `_deprecated_settings` attribute and `.settings` property are also removed.
|
||||||
|
|
||||||
### Breaking: `ui=` Renamed to `app=`
|
### Breaking: `ui=` Renamed to `app=`
|
||||||
|
|
||||||
The MCP Apps decorator parameter has been renamed from `ui=ToolUI(...)` / `ui=ResourceUI(...)` to `app=AppConfig(...)` ([#3117](https://github.com/jlowin/fastmcp/pull/3117)). `ToolUI` and `ResourceUI` are consolidated into a single `AppConfig` class. Wire format is unchanged. See the MCP Apps section under beta2 for full details.
|
The MCP Apps decorator parameter has been renamed from `ui=ToolUI(...)` / `ui=ResourceUI(...)` to `app=AppConfig(...)` ([#3117](https://github.com/prefecthq/fastmcp/pull/3117)). `ToolUI` and `ResourceUI` are consolidated into a single `AppConfig` class. Wire format is unchanged. See the MCP Apps section under beta2 for full details.
|
||||||
## 3.0.0beta2
|
## 3.0.0beta2
|
||||||
|
|
||||||
### CLI: `fastmcp list` and `fastmcp call`
|
### CLI: `fastmcp list` and `fastmcp call`
|
||||||
|
|
@ -179,11 +179,11 @@ Documentation: [Client CLI](/clients/cli)
|
||||||
|
|
||||||
### CLI: Expanded Reload File Watching
|
### CLI: Expanded Reload File Watching
|
||||||
|
|
||||||
The `--reload` flag now watches a comprehensive set of file types, making it suitable for MCP apps with frontend bundles ([#3028](https://github.com/jlowin/fastmcp/pull/3028)). Previously limited to `.py` files, it now watches JavaScript, TypeScript, HTML, CSS, config files, and media assets.
|
The `--reload` flag now watches a comprehensive set of file types, making it suitable for MCP apps with frontend bundles ([#3028](https://github.com/prefecthq/fastmcp/pull/3028)). Previously limited to `.py` files, it now watches JavaScript, TypeScript, HTML, CSS, config files, and media assets.
|
||||||
|
|
||||||
### CLI: fastmcp install stdio
|
### CLI: fastmcp install stdio
|
||||||
|
|
||||||
The new `fastmcp install stdio` command generates full `uv run` commands for running FastMCP servers over stdio ([#3032](https://github.com/jlowin/fastmcp/pull/3032)).
|
The new `fastmcp install stdio` command generates full `uv run` commands for running FastMCP servers over stdio ([#3032](https://github.com/prefecthq/fastmcp/pull/3032)).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Generate command for a server
|
# Generate command for a server
|
||||||
|
|
@ -244,7 +244,7 @@ Documentation: [CIMD Authentication](/clients/auth/cimd), [OAuth Proxy CIMD conf
|
||||||
|
|
||||||
### Pre-Registered OAuth Clients
|
### Pre-Registered OAuth Clients
|
||||||
|
|
||||||
The `OAuth` client helper now accepts `client_id` and `client_secret` parameters for servers where the client is already registered ([#3086](https://github.com/jlowin/fastmcp/pull/3086)). This bypasses Dynamic Client Registration entirely — useful when DCR is disabled, or when the server has pre-provisioned credentials for your application.
|
The `OAuth` client helper now accepts `client_id` and `client_secret` parameters for servers where the client is already registered ([#3086](https://github.com/prefecthq/fastmcp/pull/3086)). This bypasses Dynamic Client Registration entirely — useful when DCR is disabled, or when the server has pre-provisioned credentials for your application.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import Client
|
from fastmcp import Client
|
||||||
|
|
@ -267,7 +267,7 @@ Documentation: [Pre-Registered Clients](/clients/auth/oauth#pre-registered-clien
|
||||||
|
|
||||||
### CLI: `fastmcp generate-cli`
|
### CLI: `fastmcp generate-cli`
|
||||||
|
|
||||||
`fastmcp generate-cli` connects to any MCP server, reads its tool schemas, and writes a standalone Python CLI script where every tool becomes a typed subcommand with flags, help text, and tab completion ([#3065](https://github.com/jlowin/fastmcp/pull/3065)). The insight is that MCP tool schemas already contain everything a CLI framework needs — parameter names, types, descriptions, required/optional status — so the generator maps JSON Schema directly into [cyclopts](https://cyclopts.readthedocs.io/) commands.
|
`fastmcp generate-cli` connects to any MCP server, reads its tool schemas, and writes a standalone Python CLI script where every tool becomes a typed subcommand with flags, help text, and tab completion ([#3065](https://github.com/prefecthq/fastmcp/pull/3065)). The insight is that MCP tool schemas already contain everything a CLI framework needs — parameter names, types, descriptions, required/optional status — so the generator maps JSON Schema directly into [cyclopts](https://cyclopts.readthedocs.io/) commands.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Generate from any server spec
|
# Generate from any server spec
|
||||||
|
|
@ -287,7 +287,7 @@ Documentation: [Generate CLI](/clients/generate-cli)
|
||||||
|
|
||||||
### CLI: Goose Integration
|
### CLI: Goose Integration
|
||||||
|
|
||||||
New `fastmcp install goose` command that generates a `goose://extension?...` deeplink URL and opens it, prompting Goose to install the server as a STDIO extension ([#3040](https://github.com/jlowin/fastmcp/pull/3040)). Goose requires `uvx` rather than `uv run`, so the command builds the appropriate invocation automatically.
|
New `fastmcp install goose` command that generates a `goose://extension?...` deeplink URL and opens it, prompting Goose to install the server as a STDIO extension ([#3040](https://github.com/prefecthq/fastmcp/pull/3040)). Goose requires `uvx` rather than `uv run`, so the command builds the appropriate invocation automatically.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
fastmcp install goose server.py
|
fastmcp install goose server.py
|
||||||
|
|
@ -298,7 +298,7 @@ Also adds a full integration guide at [Goose Integration](/integrations/goose).
|
||||||
|
|
||||||
### ResponseLimitingMiddleware
|
### ResponseLimitingMiddleware
|
||||||
|
|
||||||
New middleware for controlling tool response sizes, preventing large outputs from overwhelming LLM context windows ([#3072](https://github.com/jlowin/fastmcp/pull/3072)). Text responses are truncated at UTF-8 character boundaries; structured responses (tools with `output_schema`) raise `ToolError` since truncation would corrupt the schema.
|
New middleware for controlling tool response sizes, preventing large outputs from overwhelming LLM context windows ([#3072](https://github.com/prefecthq/fastmcp/pull/3072)). Text responses are truncated at UTF-8 character boundaries; structured responses (tools with `output_schema`) raise `ToolError` since truncation would corrupt the schema.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp.server.middleware.response_limiting import ResponseLimitingMiddleware
|
from fastmcp.server.middleware.response_limiting import ResponseLimitingMiddleware
|
||||||
|
|
@ -324,7 +324,7 @@ Documentation: [Middleware](/servers/middleware)
|
||||||
|
|
||||||
### Background Task Context (SEP-1686)
|
### Background Task Context (SEP-1686)
|
||||||
|
|
||||||
`Context` now works transparently in background tasks running in Docket workers ([#2905](https://github.com/jlowin/fastmcp/pull/2905)). Previously, tools running as background tasks couldn't use `ctx.elicit()` because there was no active request context. Now, when a tool executes in a Docket worker, `Context` detects this via its `task_id` and routes elicitation through Redis-based coordination: the task sets its status to `input_required`, sends a `notifications/tasks/updated` notification with elicitation metadata, and waits for the client to respond via `tasks/sendInput`.
|
`Context` now works transparently in background tasks running in Docket workers ([#2905](https://github.com/prefecthq/fastmcp/pull/2905)). Previously, tools running as background tasks couldn't use `ctx.elicit()` because there was no active request context. Now, when a tool executes in a Docket worker, `Context` detects this via its `task_id` and routes elicitation through Redis-based coordination: the task sets its status to `input_required`, sends a `notifications/tasks/updated` notification with elicitation metadata, and waits for the client to respond via `tasks/sendInput`.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@mcp.tool(task=True)
|
@mcp.tool(task=True)
|
||||||
|
|
@ -342,7 +342,7 @@ async def interactive_task(ctx: Context) -> str:
|
||||||
|
|
||||||
### `require_auth` Removed
|
### `require_auth` Removed
|
||||||
|
|
||||||
The `require_auth` authorization check introduced in beta1 has been removed in favor of scope-based authorization via `require_scopes` ([#3103](https://github.com/jlowin/fastmcp/pull/3103)). Since configuring an `AuthProvider` already rejects unauthenticated requests at the transport level, `require_auth` was redundant — `require_scopes` provides the same guarantee with better granularity. The beta1 Component Authorization section has been updated to reflect this.
|
The `require_auth` authorization check introduced in beta1 has been removed in favor of scope-based authorization via `require_scopes` ([#3103](https://github.com/prefecthq/fastmcp/pull/3103)). Since configuring an `AuthProvider` already rejects unauthenticated requests at the transport level, `require_auth` was redundant — `require_scopes` provides the same guarantee with better granularity. The beta1 Component Authorization section has been updated to reflect this.
|
||||||
|
|
||||||
### MCP Apps (SDK Compatibility)
|
### MCP Apps (SDK Compatibility)
|
||||||
|
|
||||||
|
|
@ -420,7 +420,7 @@ Implementation: `src/fastmcp/server/apps.py` (models and constants), with integr
|
||||||
|
|
||||||
### Provider-Based Architecture
|
### Provider-Based Architecture
|
||||||
|
|
||||||
v3.0 introduces a provider-based component system that replaces v2's static-only registration ([#2622](https://github.com/jlowin/fastmcp/pull/2622)). Providers dynamically source tools, resources, templates, and prompts at runtime.
|
v3.0 introduces a provider-based component system that replaces v2's static-only registration ([#2622](https://github.com/prefecthq/fastmcp/pull/2622)). Providers dynamically source tools, resources, templates, and prompts at runtime.
|
||||||
|
|
||||||
**Core abstraction** (`src/fastmcp/server/providers/base.py`):
|
**Core abstraction** (`src/fastmcp/server/providers/base.py`):
|
||||||
```python
|
```python
|
||||||
|
|
@ -514,7 +514,7 @@ main.add_provider(provider)
|
||||||
|
|
||||||
### Transforms
|
### Transforms
|
||||||
|
|
||||||
Transforms modify components (tools, resources, prompts) as they flow from providers to clients ([#2836](https://github.com/jlowin/fastmcp/pull/2836)). They use a middleware pattern where each transform receives a `call_next` callable to continue the chain.
|
Transforms modify components (tools, resources, prompts) as they flow from providers to clients ([#2836](https://github.com/prefecthq/fastmcp/pull/2836)). They use a middleware pattern where each transform receives a `call_next` callable to continue the chain.
|
||||||
|
|
||||||
**Built-in transforms** (`src/fastmcp/server/transforms/`):
|
**Built-in transforms** (`src/fastmcp/server/transforms/`):
|
||||||
|
|
||||||
|
|
@ -679,7 +679,7 @@ Works at both server and provider level. Supports:
|
||||||
|
|
||||||
#### Per-Session Visibility
|
#### Per-Session Visibility
|
||||||
|
|
||||||
Server-level visibility changes affect all connected clients. For per-session control, use `Context` methods that apply rules only to the current session ([#2917](https://github.com/jlowin/fastmcp/pull/2917)):
|
Server-level visibility changes affect all connected clients. For per-session control, use `Context` methods that apply rules only to the current session ([#2917](https://github.com/prefecthq/fastmcp/pull/2917)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import FastMCP
|
from fastmcp import FastMCP
|
||||||
|
|
@ -838,7 +838,7 @@ The `@` is always present (even for unversioned components) to enable unambiguou
|
||||||
|
|
||||||
### Type-Safe Canonical Results
|
### Type-Safe Canonical Results
|
||||||
|
|
||||||
v3.0 introduces type-safe result classes that provide explicit control over component responses while supporting MCP runtime metadata: `ToolResult` ([#2736](https://github.com/jlowin/fastmcp/pull/2736)), `ResourceResult` ([#2734](https://github.com/jlowin/fastmcp/pull/2734)), and `PromptResult` ([#2738](https://github.com/jlowin/fastmcp/pull/2738)).
|
v3.0 introduces type-safe result classes that provide explicit control over component responses while supporting MCP runtime metadata: `ToolResult` ([#2736](https://github.com/prefecthq/fastmcp/pull/2736)), `ResourceResult` ([#2734](https://github.com/prefecthq/fastmcp/pull/2734)), and `PromptResult` ([#2738](https://github.com/prefecthq/fastmcp/pull/2738)).
|
||||||
|
|
||||||
#### ToolResult
|
#### ToolResult
|
||||||
|
|
||||||
|
|
@ -936,7 +936,7 @@ Requires Docket server for task scheduling and result polling.
|
||||||
|
|
||||||
### Decorators Return Functions
|
### Decorators Return Functions
|
||||||
|
|
||||||
v3.0 changes what decorators (`@tool`, `@resource`, `@prompt`) return ([#2856](https://github.com/jlowin/fastmcp/pull/2856)). Decorators now return the original function unchanged, rather than transforming it into a component object.
|
v3.0 changes what decorators (`@tool`, `@resource`, `@prompt`) return ([#2856](https://github.com/prefecthq/fastmcp/pull/2856)). Decorators now return the original function unchanged, rather than transforming it into a component object.
|
||||||
|
|
||||||
**v3 behavior (default):**
|
**v3 behavior (default):**
|
||||||
```python
|
```python
|
||||||
|
|
@ -968,7 +968,7 @@ Environment variable: `FASTMCP_DECORATOR_MODE=object`
|
||||||
|
|
||||||
### CLI Auto-Reload
|
### CLI Auto-Reload
|
||||||
|
|
||||||
The `--reload` flag enables file watching with automatic server restarts for development ([#2816](https://github.com/jlowin/fastmcp/pull/2816)).
|
The `--reload` flag enables file watching with automatic server restarts for development ([#2816](https://github.com/prefecthq/fastmcp/pull/2816)).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Watch for changes and restart
|
# Watch for changes and restart
|
||||||
|
|
@ -997,7 +997,7 @@ fastmcp dev inspector server.py # Includes --reload by default
|
||||||
|
|
||||||
### Component Authorization
|
### Component Authorization
|
||||||
|
|
||||||
v3.0 introduces callable-based authorization for tools, resources, and prompts ([#2855](https://github.com/jlowin/fastmcp/pull/2855)).
|
v3.0 introduces callable-based authorization for tools, resources, and prompts ([#2855](https://github.com/prefecthq/fastmcp/pull/2855)).
|
||||||
|
|
||||||
**Component-level auth**:
|
**Component-level auth**:
|
||||||
|
|
||||||
|
|
@ -1053,7 +1053,7 @@ v3.0 introduces `FileSystemProvider`, a fundamentally different approach to orga
|
||||||
|
|
||||||
**The problem it solves**: Traditional servers require coordination between files—either tool files import the server (creating coupling) or the server imports all tool modules (creating a registry bottleneck). FileSystemProvider removes this coupling entirely.
|
**The problem it solves**: Traditional servers require coordination between files—either tool files import the server (creating coupling) or the server imports all tool modules (creating a registry bottleneck). FileSystemProvider removes this coupling entirely.
|
||||||
|
|
||||||
**Usage** ([#2823](https://github.com/jlowin/fastmcp/pull/2823)):
|
**Usage** ([#2823](https://github.com/prefecthq/fastmcp/pull/2823)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import FastMCP
|
from fastmcp import FastMCP
|
||||||
|
|
@ -1076,7 +1076,7 @@ def greet(name: str) -> str:
|
||||||
```
|
```
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
- **Standalone decorators**: `@tool`, `@resource`, `@prompt` from `fastmcp.tools`, `fastmcp.resources`, `fastmcp.prompts` ([#2832](https://github.com/jlowin/fastmcp/pull/2832))
|
- **Standalone decorators**: `@tool`, `@resource`, `@prompt` from `fastmcp.tools`, `fastmcp.resources`, `fastmcp.prompts` ([#2832](https://github.com/prefecthq/fastmcp/pull/2832))
|
||||||
- **Reload mode**: `FileSystemProvider("mcp/", reload=True)` re-scans on every request for development
|
- **Reload mode**: `FileSystemProvider("mcp/", reload=True)` re-scans on every request for development
|
||||||
- **Package support**: Directories with `__init__.py` support relative imports
|
- **Package support**: Directories with `__init__.py` support relative imports
|
||||||
- **Warning deduplication**: Broken imports warn once per file modification
|
- **Warning deduplication**: Broken imports warn once per file modification
|
||||||
|
|
@ -1087,7 +1087,7 @@ Documentation: [FileSystemProvider](/servers/providers/filesystem)
|
||||||
|
|
||||||
### SkillsProvider
|
### SkillsProvider
|
||||||
|
|
||||||
v3.0 introduces `SkillsProvider` for exposing agent skills as MCP resources ([#2944](https://github.com/jlowin/fastmcp/pull/2944)). Skills are directories containing instructions and supporting files that teach AI assistants how to perform tasks—used by Claude Code, Cursor, VS Code Copilot, and other AI coding tools.
|
v3.0 introduces `SkillsProvider` for exposing agent skills as MCP resources ([#2944](https://github.com/prefecthq/fastmcp/pull/2944)). Skills are directories containing instructions and supporting files that teach AI assistants how to perform tasks—used by Claude Code, Cursor, VS Code Copilot, and other AI coding tools.
|
||||||
|
|
||||||
**Usage**:
|
**Usage**:
|
||||||
|
|
||||||
|
|
@ -1130,7 +1130,7 @@ Documentation: [Skills Provider](/servers/providers/skills)
|
||||||
|
|
||||||
### OpenTelemetry Tracing
|
### OpenTelemetry Tracing
|
||||||
|
|
||||||
v3.0 adds OpenTelemetry instrumentation for observability into server and client operations ([#2869](https://github.com/jlowin/fastmcp/pull/2869)).
|
v3.0 adds OpenTelemetry instrumentation for observability into server and client operations ([#2869](https://github.com/prefecthq/fastmcp/pull/2869)).
|
||||||
|
|
||||||
**Server spans**: Created for tool calls, resource reads, and prompt renders with attributes including component key, provider type, session ID, and auth context.
|
**Server spans**: Created for tool calls, resource reads, and prompt renders with attributes including component key, provider type, session ID, and auth context.
|
||||||
|
|
||||||
|
|
@ -1158,7 +1158,7 @@ Documentation: [Telemetry](/servers/telemetry)
|
||||||
|
|
||||||
### Pagination
|
### Pagination
|
||||||
|
|
||||||
v3.0 adds pagination support for list operations when servers expose many components ([#2903](https://github.com/jlowin/fastmcp/pull/2903)).
|
v3.0 adds pagination support for list operations when servers expose many components ([#2903](https://github.com/prefecthq/fastmcp/pull/2903)).
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import FastMCP
|
from fastmcp import FastMCP
|
||||||
|
|
@ -1184,7 +1184,7 @@ Documentation: [Pagination](/servers/pagination)
|
||||||
|
|
||||||
### Composable Lifespans
|
### Composable Lifespans
|
||||||
|
|
||||||
Lifespans can be combined with the `|` operator for modular setup/teardown ([#2828](https://github.com/jlowin/fastmcp/pull/2828)):
|
Lifespans can be combined with the `|` operator for modular setup/teardown ([#2828](https://github.com/prefecthq/fastmcp/pull/2828)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import FastMCP
|
from fastmcp import FastMCP
|
||||||
|
|
@ -1225,7 +1225,7 @@ Documentation: [Lifespan](/servers/lifespan)
|
||||||
|
|
||||||
### Tool Timeout
|
### Tool Timeout
|
||||||
|
|
||||||
Tools can limit foreground execution time with a `timeout` parameter ([#2872](https://github.com/jlowin/fastmcp/pull/2872)):
|
Tools can limit foreground execution time with a `timeout` parameter ([#2872](https://github.com/prefecthq/fastmcp/pull/2872)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@mcp.tool(timeout=30.0)
|
@mcp.tool(timeout=30.0)
|
||||||
|
|
@ -1242,7 +1242,7 @@ Note: This timeout applies to foreground execution only. Background tasks (`task
|
||||||
|
|
||||||
### PingMiddleware
|
### PingMiddleware
|
||||||
|
|
||||||
Sends periodic server-to-client pings to keep long-lived connections alive ([#2838](https://github.com/jlowin/fastmcp/pull/2838)):
|
Sends periodic server-to-client pings to keep long-lived connections alive ([#2838](https://github.com/prefecthq/fastmcp/pull/2838)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import FastMCP
|
from fastmcp import FastMCP
|
||||||
|
|
@ -1258,7 +1258,7 @@ The middleware starts a background ping task on first message from each session,
|
||||||
|
|
||||||
### Context.transport Property
|
### Context.transport Property
|
||||||
|
|
||||||
Tools can detect which transport is active ([#2850](https://github.com/jlowin/fastmcp/pull/2850)):
|
Tools can detect which transport is active ([#2850](https://github.com/prefecthq/fastmcp/pull/2850)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from fastmcp import FastMCP, Context
|
from fastmcp import FastMCP, Context
|
||||||
|
|
@ -1278,7 +1278,7 @@ Returns `Literal["stdio", "sse", "streamable-http"]` when running, or `None` out
|
||||||
|
|
||||||
### Automatic Threadpool for Sync Functions
|
### Automatic Threadpool for Sync Functions
|
||||||
|
|
||||||
Synchronous tools, resources, and prompts now automatically run in a threadpool, preventing event loop blocking during concurrent requests ([#2865](https://github.com/jlowin/fastmcp/pull/2865)):
|
Synchronous tools, resources, and prompts now automatically run in a threadpool, preventing event loop blocking during concurrent requests ([#2865](https://github.com/prefecthq/fastmcp/pull/2865)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import time
|
import time
|
||||||
|
|
@ -1295,7 +1295,7 @@ Three concurrent calls now execute in parallel (~10s) rather than sequentially (
|
||||||
|
|
||||||
### CLI Update Notifications
|
### CLI Update Notifications
|
||||||
|
|
||||||
The CLI notifies users when a newer FastMCP version is available on PyPI ([#2840](https://github.com/jlowin/fastmcp/pull/2840)).
|
The CLI notifies users when a newer FastMCP version is available on PyPI ([#2840](https://github.com/prefecthq/fastmcp/pull/2840)).
|
||||||
|
|
||||||
**Setting**: `FASTMCP_CHECK_FOR_UPDATES`
|
**Setting**: `FASTMCP_CHECK_FOR_UPDATES`
|
||||||
- `"stable"` - Check for stable releases (default)
|
- `"stable"` - Check for stable releases (default)
|
||||||
|
|
@ -1332,7 +1332,7 @@ These constructor parameters have been **removed** (not just deprecated) as of r
|
||||||
|
|
||||||
#### WSTransport Removed
|
#### WSTransport Removed
|
||||||
|
|
||||||
The deprecated `WSTransport` client transport has been removed ([#2826](https://github.com/jlowin/fastmcp/pull/2826)). Use `StreamableHttpTransport` instead.
|
The deprecated `WSTransport` client transport has been removed ([#2826](https://github.com/prefecthq/fastmcp/pull/2826)). Use `StreamableHttpTransport` instead.
|
||||||
|
|
||||||
#### Decorators Return Functions
|
#### Decorators Return Functions
|
||||||
|
|
||||||
|
|
@ -1411,7 +1411,7 @@ def my_prompt() -> Message:
|
||||||
|
|
||||||
#### Auth Provider Environment Variables Removed
|
#### Auth Provider Environment Variables Removed
|
||||||
|
|
||||||
Auth providers no longer auto-load from environment variables ([#2752](https://github.com/jlowin/fastmcp/pull/2752)):
|
Auth providers no longer auto-load from environment variables ([#2752](https://github.com/prefecthq/fastmcp/pull/2752)):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# v2.x - auto-loaded from FASTMCP_SERVER_AUTH_GITHUB_*
|
# v2.x - auto-loaded from FASTMCP_SERVER_AUTH_GITHUB_*
|
||||||
|
|
@ -1429,7 +1429,7 @@ See `docs/development/v3-notes/auth-provider-env-vars.mdx` for rationale.
|
||||||
|
|
||||||
#### Server Banner Environment Variable
|
#### Server Banner Environment Variable
|
||||||
|
|
||||||
`FASTMCP_SHOW_CLI_BANNER` → `FASTMCP_SHOW_SERVER_BANNER` ([#2771](https://github.com/jlowin/fastmcp/pull/2771))
|
`FASTMCP_SHOW_CLI_BANNER` → `FASTMCP_SHOW_SERVER_BANNER` ([#2771](https://github.com/prefecthq/fastmcp/pull/2771))
|
||||||
|
|
||||||
Now applies to all server startup methods, not just the CLI.
|
Now applies to all server startup methods, not just the CLI.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
"footer": {
|
"footer": {
|
||||||
"socials": {
|
"socials": {
|
||||||
"discord": "https://discord.gg/uu8dJCgttd",
|
"discord": "https://discord.gg/uu8dJCgttd",
|
||||||
"github": "https://github.com/jlowin/fastmcp",
|
"github": "https://github.com/prefecthq/fastmcp",
|
||||||
"website": "https://www.prefect.io",
|
"website": "https://www.prefect.io",
|
||||||
"x": "https://x.com/fastmcp"
|
"x": "https://x.com/fastmcp"
|
||||||
}
|
}
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"primary": {
|
"primary": {
|
||||||
"href": "https://github.com/jlowin/fastmcp",
|
"href": "https://github.com/prefecthq/fastmcp",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ FastMCP includes a `contrib` package that holds community-contributed modules. T
|
||||||
|
|
||||||
Contrib modules provide additional features, integrations, or patterns that complement the core FastMCP library. They offer a way for the community to share useful extensions while keeping the core library focused and maintainable.
|
Contrib modules provide additional features, integrations, or patterns that complement the core FastMCP library. They offer a way for the community to share useful extensions while keeping the core library focused and maintainable.
|
||||||
|
|
||||||
The available modules can be viewed in the [contrib directory](https://github.com/jlowin/fastmcp/tree/main/src/fastmcp/contrib).
|
The available modules can be viewed in the [contrib directory](https://github.com/prefecthq/fastmcp/tree/main/src/fastmcp/contrib).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -100,5 +100,5 @@ async def test_add(
|
||||||
```
|
```
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
The [FastMCP Repository contains thousands of tests](https://github.com/jlowin/fastmcp/tree/main/tests) for the FastMCP Client and Server. Everything from connecting to remote MCP servers, to testing tools, resources, and prompts is covered, take a look for inspiration!
|
The [FastMCP Repository contains thousands of tests](https://github.com/prefecthq/fastmcp/tree/main/tests) for the FastMCP Client and Server. Everything from connecting to remote MCP servers, to testing tools, resources, and prompts is covered, take a look for inspiration!
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
@ -10,7 +10,7 @@ CIMD (Client ID Metadata Document) CLI commands.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `create_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cimd.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cimd.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_command() -> None
|
create_command() -> None
|
||||||
|
|
@ -26,7 +26,7 @@ After creating the document, host it at an HTTPS URL with a non-root path,
|
||||||
for example: https://myapp.example.com/oauth/client.json
|
for example: https://myapp.example.com/oauth/client.json
|
||||||
|
|
||||||
|
|
||||||
### `validate_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cimd.py#L144" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `validate_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cimd.py#L144" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_command(url: Annotated[str, cyclopts.Parameter(help='URL of the CIMD document to validate')]) -> None
|
validate_command(url: Annotated[str, cyclopts.Parameter(help='URL of the CIMD document to validate')]) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ FastMCP CLI tools using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `with_argv` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `with_argv` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cli.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
with_argv(args: list[str] | None)
|
with_argv(args: list[str] | None)
|
||||||
|
|
@ -27,7 +27,7 @@ Args are provided without the script name, so we preserve sys.argv[0]
|
||||||
and replace the rest.
|
and replace the rest.
|
||||||
|
|
||||||
|
|
||||||
### `version` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `version` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cli.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
version()
|
version()
|
||||||
|
|
@ -37,7 +37,7 @@ version()
|
||||||
Display version information and platform details.
|
Display version information and platform details.
|
||||||
|
|
||||||
|
|
||||||
### `inspector` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L142" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `inspector` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cli.py#L142" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
inspector(server_spec: str | None = None) -> None
|
inspector(server_spec: str | None = None) -> None
|
||||||
|
|
@ -50,7 +50,7 @@ Run an MCP server with the MCP Inspector for development.
|
||||||
- `server_spec`: Python file to run, optionally with \:object suffix, or None to auto-detect fastmcp.json
|
- `server_spec`: Python file to run, optionally with \:object suffix, or None to auto-detect fastmcp.json
|
||||||
|
|
||||||
|
|
||||||
### `run` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L322" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `run` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cli.py#L322" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
run(server_spec: str | None = None, *server_args: str) -> None
|
run(server_spec: str | None = None, *server_args: str) -> None
|
||||||
|
|
@ -74,7 +74,7 @@ fastmcp run server.py -- --config config.json --debug
|
||||||
- `server_spec`: Python file, object specification (file\:obj), config file, URL, or None to auto-detect
|
- `server_spec`: Python file, object specification (file\:obj), config file, URL, or None to auto-detect
|
||||||
|
|
||||||
|
|
||||||
### `inspect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L624" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `inspect` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cli.py#L624" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
inspect(server_spec: str | None = None) -> None
|
inspect(server_spec: str | None = None) -> None
|
||||||
|
|
@ -105,7 +105,7 @@ fastmcp inspect # auto-detect fastmcp.json
|
||||||
- `server_spec`: Python file to inspect, optionally with \:object suffix, or fastmcp.json
|
- `server_spec`: Python file to inspect, optionally with \:object suffix, or fastmcp.json
|
||||||
|
|
||||||
|
|
||||||
### `prepare` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/cli.py#L866" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `prepare` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/cli.py#L866" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
prepare(config_path: Annotated[str | None, cyclopts.Parameter(help='Path to fastmcp.json configuration file')] = None, output_dir: Annotated[str | None, cyclopts.Parameter(help='Directory to create the persistent environment in')] = None, skip_source: Annotated[bool, cyclopts.Parameter(help='Skip source preparation (e.g., git clone)')] = False) -> None
|
prepare(config_path: Annotated[str | None, cyclopts.Parameter(help='Path to fastmcp.json configuration file')] = None, output_dir: Annotated[str | None, cyclopts.Parameter(help='Directory to create the persistent environment in')] = None, skip_source: Annotated[bool, cyclopts.Parameter(help='Skip source preparation (e.g., git clone)')] = False) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Client-side CLI commands for querying and invoking MCP servers.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `resolve_server_spec` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L43" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resolve_server_spec` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L43" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resolve_server_spec(server_spec: str | None) -> str | dict[str, Any] | ClientTransport
|
resolve_server_spec(server_spec: str | None) -> str | dict[str, Any] | ClientTransport
|
||||||
|
|
@ -32,7 +32,7 @@ When ``command`` is provided, the string is shell-split into a
|
||||||
``StdioTransport(command, args)``.
|
``StdioTransport(command, args)``.
|
||||||
|
|
||||||
|
|
||||||
### `coerce_value` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L265" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `coerce_value` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L265" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
coerce_value(raw: str, schema: dict[str, Any]) -> Any
|
coerce_value(raw: str, schema: dict[str, Any]) -> Any
|
||||||
|
|
@ -42,7 +42,7 @@ coerce_value(raw: str, schema: dict[str, Any]) -> Any
|
||||||
Coerce a string CLI value according to a JSON-Schema type hint.
|
Coerce a string CLI value according to a JSON-Schema type hint.
|
||||||
|
|
||||||
|
|
||||||
### `parse_tool_arguments` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L299" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `parse_tool_arguments` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L299" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
parse_tool_arguments(raw_args: tuple[str, ...], input_json: str | None, input_schema: dict[str, Any]) -> dict[str, Any]
|
parse_tool_arguments(raw_args: tuple[str, ...], input_json: str | None, input_schema: dict[str, Any]) -> dict[str, Any]
|
||||||
|
|
@ -56,7 +56,7 @@ A single JSON object argument is treated as the full argument dict.
|
||||||
Values are coerced using the tool's ``inputSchema``.
|
Values are coerced using the tool's ``inputSchema``.
|
||||||
|
|
||||||
|
|
||||||
### `format_tool_signature` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L371" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `format_tool_signature` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L371" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
format_tool_signature(tool: mcp.types.Tool) -> str
|
format_tool_signature(tool: mcp.types.Tool) -> str
|
||||||
|
|
@ -66,7 +66,7 @@ format_tool_signature(tool: mcp.types.Tool) -> str
|
||||||
Build ``name(param: type, ...) -> return_type`` from a tool's JSON schemas.
|
Build ``name(param: type, ...) -> return_type`` from a tool's JSON schemas.
|
||||||
|
|
||||||
|
|
||||||
### `list_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L627" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `list_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L627" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_command(server_spec: Annotated[str | None, cyclopts.Parameter(help='Server URL, Python file, MCPConfig JSON, or .js file')] = None) -> None
|
list_command(server_spec: Annotated[str | None, cyclopts.Parameter(help='Server URL, Python file, MCPConfig JSON, or .js file')] = None) -> None
|
||||||
|
|
@ -84,7 +84,7 @@ fastmcp list --command 'npx -y @mcp/server' --resources
|
||||||
fastmcp list http://server/mcp --transport sse
|
fastmcp list http://server/mcp --transport sse
|
||||||
|
|
||||||
|
|
||||||
### `call_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L776" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `call_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L776" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
call_command(server_spec: Annotated[str | None, cyclopts.Parameter(help='Server URL, Python file, MCPConfig JSON, or .js file')] = None, target: Annotated[str, cyclopts.Parameter(help='Tool name, resource URI, or prompt name (with --prompt)')] = '', *arguments: str) -> None
|
call_command(server_spec: Annotated[str | None, cyclopts.Parameter(help='Server URL, Python file, MCPConfig JSON, or .js file')] = None, target: Annotated[str, cyclopts.Parameter(help='Tool name, resource URI, or prompt name (with --prompt)')] = '', *arguments: str) -> None
|
||||||
|
|
@ -108,7 +108,7 @@ fastmcp call server.py analyze --prompt data='[1,2,3]'
|
||||||
fastmcp call http://server/mcp create --input-json '{"tags": ["a","b"]}'
|
fastmcp call http://server/mcp create --input-json '{"tags": ["a","b"]}'
|
||||||
|
|
||||||
|
|
||||||
### `discover_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/client.py#L875" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `discover_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/client.py#L875" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
discover_command() -> None
|
discover_command() -> None
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ or file path.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `discover_servers` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L314" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `discover_servers` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L314" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
discover_servers(start_dir: Path | None = None) -> list[DiscoveredServer]
|
discover_servers(start_dir: Path | None = None) -> list[DiscoveredServer]
|
||||||
|
|
@ -30,7 +30,7 @@ Duplicate names across sources are preserved — callers can
|
||||||
use :pyattr:`DiscoveredServer.qualified_name` to disambiguate.
|
use :pyattr:`DiscoveredServer.qualified_name` to disambiguate.
|
||||||
|
|
||||||
|
|
||||||
### `resolve_name` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L331" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resolve_name` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L331" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resolve_name(name: str, start_dir: Path | None = None) -> ClientTransport
|
resolve_name(name: str, start_dir: Path | None = None) -> ClientTransport
|
||||||
|
|
@ -44,7 +44,7 @@ Raises :class:`ValueError` when the name is not found or is ambiguous.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DiscoveredServer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DiscoveredServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A single MCP server found in an editor or project config.
|
A single MCP server found in an editor or project config.
|
||||||
|
|
@ -52,7 +52,7 @@ A single MCP server found in an editor or project config.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `qualified_name` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `qualified_name` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
qualified_name(self) -> str
|
qualified_name(self) -> str
|
||||||
|
|
@ -61,7 +61,7 @@ qualified_name(self) -> str
|
||||||
Fully qualified ``source:name`` identifier.
|
Fully qualified ``source:name`` identifier.
|
||||||
|
|
||||||
|
|
||||||
#### `transport_summary` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `transport_summary` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/discovery.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
transport_summary(self) -> str
|
transport_summary(self) -> str
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Generate a standalone CLI script and agent skill from an MCP server.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `serialize_transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/generate.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `serialize_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/generate.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
serialize_transport(resolved: str | dict[str, Any] | ClientTransport) -> tuple[str, set[str]]
|
serialize_transport(resolved: str | dict[str, Any] | ClientTransport) -> tuple[str, set[str]]
|
||||||
|
|
@ -23,7 +23,7 @@ Returns ``(expression, extra_imports)`` where *extra_imports* is a set of
|
||||||
import lines needed by the expression.
|
import lines needed by the expression.
|
||||||
|
|
||||||
|
|
||||||
### `generate_cli_script` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/generate.py#L283" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `generate_cli_script` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/generate.py#L283" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_cli_script(server_name: str, server_spec: str, transport_code: str, extra_imports: set[str], tools: list[mcp.types.Tool]) -> str
|
generate_cli_script(server_name: str, server_spec: str, transport_code: str, extra_imports: set[str], tools: list[mcp.types.Tool]) -> str
|
||||||
|
|
@ -33,7 +33,7 @@ generate_cli_script(server_name: str, server_spec: str, transport_code: str, ext
|
||||||
Generate the full CLI script source code.
|
Generate the full CLI script source code.
|
||||||
|
|
||||||
|
|
||||||
### `generate_skill_content` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/generate.py#L621" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `generate_skill_content` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/generate.py#L621" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_skill_content(server_name: str, cli_filename: str, tools: list[mcp.types.Tool]) -> str
|
generate_skill_content(server_name: str, cli_filename: str, tools: list[mcp.types.Tool]) -> str
|
||||||
|
|
@ -43,7 +43,7 @@ generate_skill_content(server_name: str, cli_filename: str, tools: list[mcp.type
|
||||||
Generate a SKILL.md file for a generated CLI script.
|
Generate a SKILL.md file for a generated CLI script.
|
||||||
|
|
||||||
|
|
||||||
### `generate_cli_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/generate.py#L672" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `generate_cli_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/generate.py#L672" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_cli_command(server_spec: Annotated[str, cyclopts.Parameter(help='Server URL, Python file, MCPConfig JSON, discovered name, or .js file')], output: Annotated[str, cyclopts.Parameter(help='Output file path (default: cli.py)')] = 'cli.py') -> None
|
generate_cli_command(server_spec: Annotated[str, cyclopts.Parameter(help='Server URL, Python file, MCPConfig JSON, discovered name, or .js file')], output: Annotated[str, cyclopts.Parameter(help='Output file path (default: cli.py)')] = 'cli.py') -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Claude Code integration for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `find_claude_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `find_claude_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
find_claude_command() -> str | None
|
find_claude_command() -> str | None
|
||||||
|
|
@ -23,7 +23,7 @@ Checks common installation locations since 'claude' is often a shell alias
|
||||||
that doesn't work with subprocess calls.
|
that doesn't work with subprocess calls.
|
||||||
|
|
||||||
|
|
||||||
### `check_claude_code_available` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `check_claude_code_available` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
check_claude_code_available() -> bool
|
check_claude_code_available() -> bool
|
||||||
|
|
@ -33,7 +33,7 @@ check_claude_code_available() -> bool
|
||||||
Check if Claude Code CLI is available.
|
Check if Claude Code CLI is available.
|
||||||
|
|
||||||
|
|
||||||
### `install_claude_code` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_claude_code` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_claude_code(file: Path, server_object: str | None, name: str) -> bool
|
install_claude_code(file: Path, server_object: str | None, name: str) -> bool
|
||||||
|
|
@ -57,7 +57,7 @@ Install FastMCP server in Claude Code.
|
||||||
- True if installation was successful, False otherwise
|
- True if installation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `claude_code_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `claude_code_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_code.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
claude_code_command(server_spec: str) -> None
|
claude_code_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Claude Desktop integration for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `get_claude_config_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_claude_config_path` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_claude_config_path() -> Path | None
|
get_claude_config_path() -> Path | None
|
||||||
|
|
@ -20,7 +20,7 @@ get_claude_config_path() -> Path | None
|
||||||
Get the Claude config directory based on platform.
|
Get the Claude config directory based on platform.
|
||||||
|
|
||||||
|
|
||||||
### `install_claude_desktop` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_claude_desktop` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_claude_desktop(file: Path, server_object: str | None, name: str) -> bool
|
install_claude_desktop(file: Path, server_object: str | None, name: str) -> bool
|
||||||
|
|
@ -44,7 +44,7 @@ Install FastMCP server in Claude Desktop.
|
||||||
- True if installation was successful, False otherwise
|
- True if installation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `claude_desktop_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `claude_desktop_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/claude_desktop.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
claude_desktop_command(server_spec: str) -> None
|
claude_desktop_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Cursor integration for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `generate_cursor_deeplink` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `generate_cursor_deeplink` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_cursor_deeplink(server_name: str, server_config: StdioMCPServer) -> str
|
generate_cursor_deeplink(server_name: str, server_config: StdioMCPServer) -> str
|
||||||
|
|
@ -27,7 +27,7 @@ Generate a Cursor deeplink for installing the MCP server.
|
||||||
- Deeplink URL that can be clicked to install the server
|
- Deeplink URL that can be clicked to install the server
|
||||||
|
|
||||||
|
|
||||||
### `open_deeplink` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `open_deeplink` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
open_deeplink(deeplink: str) -> bool
|
open_deeplink(deeplink: str) -> bool
|
||||||
|
|
@ -43,7 +43,7 @@ Attempt to open a Cursor deeplink URL using the system's default handler.
|
||||||
- True if the command succeeded, False otherwise
|
- True if the command succeeded, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `install_cursor_workspace` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L59" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_cursor_workspace` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L59" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_cursor_workspace(file: Path, server_object: str | None, name: str, workspace_path: Path) -> bool
|
install_cursor_workspace(file: Path, server_object: str | None, name: str, workspace_path: Path) -> bool
|
||||||
|
|
@ -68,7 +68,7 @@ Install FastMCP server to workspace-specific Cursor configuration.
|
||||||
- True if installation was successful, False otherwise
|
- True if installation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `install_cursor` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L140" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_cursor` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L140" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_cursor(file: Path, server_object: str | None, name: str) -> bool
|
install_cursor(file: Path, server_object: str | None, name: str) -> bool
|
||||||
|
|
@ -93,7 +93,7 @@ Install FastMCP server in Cursor.
|
||||||
- True if installation was successful, False otherwise
|
- True if installation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `cursor_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L225" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `cursor_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/cursor.py#L225" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
cursor_command(server_spec: str) -> None
|
cursor_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Gemini CLI integration for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `find_gemini_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `find_gemini_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
find_gemini_command() -> str | None
|
find_gemini_command() -> str | None
|
||||||
|
|
@ -20,7 +20,7 @@ find_gemini_command() -> str | None
|
||||||
Find the Gemini CLI command.
|
Find the Gemini CLI command.
|
||||||
|
|
||||||
|
|
||||||
### `check_gemini_cli_available` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `check_gemini_cli_available` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
check_gemini_cli_available() -> bool
|
check_gemini_cli_available() -> bool
|
||||||
|
|
@ -30,7 +30,7 @@ check_gemini_cli_available() -> bool
|
||||||
Check if Gemini CLI is available.
|
Check if Gemini CLI is available.
|
||||||
|
|
||||||
|
|
||||||
### `install_gemini_cli` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L69" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_gemini_cli` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L69" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_gemini_cli(file: Path, server_object: str | None, name: str) -> bool
|
install_gemini_cli(file: Path, server_object: str | None, name: str) -> bool
|
||||||
|
|
@ -54,7 +54,7 @@ Install FastMCP server in Gemini CLI.
|
||||||
- True if installation was successful, False otherwise
|
- True if installation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `gemini_cli_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L150" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `gemini_cli_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/gemini_cli.py#L150" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
gemini_cli_command(server_spec: str) -> None
|
gemini_cli_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Goose integration for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `generate_goose_deeplink` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/goose.py#L29" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `generate_goose_deeplink` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/goose.py#L29" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_goose_deeplink(name: str, command: str, args: list[str]) -> str
|
generate_goose_deeplink(name: str, command: str, args: list[str]) -> str
|
||||||
|
|
@ -29,7 +29,7 @@ Generate a Goose deeplink for installing an MCP extension.
|
||||||
- A goose://extension?... deeplink URL.
|
- A goose://extension?... deeplink URL.
|
||||||
|
|
||||||
|
|
||||||
### `install_goose` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/goose.py#L86" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_goose` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/goose.py#L86" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_goose(file: Path, server_object: str | None, name: str) -> bool
|
install_goose(file: Path, server_object: str | None, name: str) -> bool
|
||||||
|
|
@ -49,7 +49,7 @@ Install FastMCP server in Goose via deeplink.
|
||||||
- True if installation was successful, False otherwise.
|
- True if installation was successful, False otherwise.
|
||||||
|
|
||||||
|
|
||||||
### `goose_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/goose.py#L136" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `goose_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/goose.py#L136" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
goose_command(server_spec: str) -> None
|
goose_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ MCP configuration JSON generation for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `install_mcp_json` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/mcp_json.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_mcp_json` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/mcp_json.py#L20" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_mcp_json(file: Path, server_object: str | None, name: str) -> bool
|
install_mcp_json(file: Path, server_object: str | None, name: str) -> bool
|
||||||
|
|
@ -35,7 +35,7 @@ Generate MCP configuration JSON for manual installation.
|
||||||
- True if generation was successful, False otherwise
|
- True if generation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `mcp_json_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/mcp_json.py#L98" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `mcp_json_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/mcp_json.py#L98" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
mcp_json_command(server_spec: str) -> None
|
mcp_json_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Shared utilities for install commands.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `parse_env_var` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/shared.py#L21" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `parse_env_var` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/shared.py#L21" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
parse_env_var(env_var: str) -> tuple[str, str]
|
parse_env_var(env_var: str) -> tuple[str, str]
|
||||||
|
|
@ -20,7 +20,7 @@ parse_env_var(env_var: str) -> tuple[str, str]
|
||||||
Parse environment variable string in format KEY=VALUE.
|
Parse environment variable string in format KEY=VALUE.
|
||||||
|
|
||||||
|
|
||||||
### `process_common_args` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/shared.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `process_common_args` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/shared.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
process_common_args(server_spec: str, server_name: str | None, with_packages: list[str] | None, env_vars: list[str] | None, env_file: Path | None) -> tuple[Path, str | None, str, list[str], dict[str, str] | None]
|
process_common_args(server_spec: str, server_name: str | None, with_packages: list[str] | None, env_vars: list[str] | None, env_file: Path | None) -> tuple[Path, str | None, str, list[str], dict[str, str] | None]
|
||||||
|
|
@ -32,7 +32,7 @@ Process common arguments shared by all install commands.
|
||||||
Handles both fastmcp.json config files and traditional file.py:object syntax.
|
Handles both fastmcp.json config files and traditional file.py:object syntax.
|
||||||
|
|
||||||
|
|
||||||
### `open_deeplink` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/shared.py#L148" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `open_deeplink` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/shared.py#L148" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
open_deeplink(url: str) -> bool
|
open_deeplink(url: str) -> bool
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Stdio command generation for FastMCP install using Cyclopts.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `install_stdio` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/stdio.py#L21" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `install_stdio` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/stdio.py#L21" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
install_stdio(file: Path, server_object: str | None) -> bool
|
install_stdio(file: Path, server_object: str | None) -> bool
|
||||||
|
|
@ -33,7 +33,7 @@ Generate the stdio command for running a FastMCP server.
|
||||||
- True if generation was successful, False otherwise
|
- True if generation was successful, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `stdio_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/install/stdio.py#L78" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `stdio_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/install/stdio.py#L78" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
stdio_command(server_spec: str) -> None
|
stdio_command(server_spec: str) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ FastMCP run command implementation with enhanced type hints.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `is_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L81" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `is_url` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L81" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_url(path: str) -> bool
|
is_url(path: str) -> bool
|
||||||
|
|
@ -20,7 +20,7 @@ is_url(path: str) -> bool
|
||||||
Check if a string is a URL.
|
Check if a string is a URL.
|
||||||
|
|
||||||
|
|
||||||
### `create_client_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_client_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_client_server(url: str) -> Any
|
create_client_server(url: str) -> Any
|
||||||
|
|
@ -36,7 +36,7 @@ Create a FastMCP server from a client URL.
|
||||||
- A FastMCP server instance
|
- A FastMCP server instance
|
||||||
|
|
||||||
|
|
||||||
### `create_mcp_config_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_mcp_config_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
|
create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
|
||||||
|
|
@ -46,7 +46,7 @@ create_mcp_config_server(mcp_config_path: Path) -> FastMCP[None]
|
||||||
Create a FastMCP server from a MCPConfig.
|
Create a FastMCP server from a MCPConfig.
|
||||||
|
|
||||||
|
|
||||||
### `load_mcp_server_config` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L116" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `load_mcp_server_config` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L116" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_mcp_server_config(config_path: Path) -> MCPServerConfig
|
load_mcp_server_config(config_path: Path) -> MCPServerConfig
|
||||||
|
|
@ -62,7 +62,7 @@ Load a FastMCP configuration from a fastmcp.json file.
|
||||||
- MCPServerConfig object
|
- MCPServerConfig object
|
||||||
|
|
||||||
|
|
||||||
### `run_command` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `run_command` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
run_command(server_spec: str, transport: TransportType | None = None, host: str | None = None, port: int | None = None, path: str | None = None, log_level: LogLevelType | None = None, server_args: list[str] | None = None, show_banner: bool = True, use_direct_import: bool = False, skip_source: bool = False, stateless: bool = False) -> None
|
run_command(server_spec: str, transport: TransportType | None = None, host: str | None = None, port: int | None = None, path: str | None = None, log_level: LogLevelType | None = None, server_args: list[str] | None = None, show_banner: bool = True, use_direct_import: bool = False, skip_source: bool = False, stateless: bool = False) -> None
|
||||||
|
|
@ -85,7 +85,7 @@ Run a MCP server or connect to a remote one.
|
||||||
- `stateless`: Whether to run in stateless mode (no session)
|
- `stateless`: Whether to run in stateless mode (no session)
|
||||||
|
|
||||||
|
|
||||||
### `run_v1_server_async` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `run_v1_server_async` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
run_v1_server_async(server: FastMCP1x, host: str | None = None, port: int | None = None, transport: TransportType | None = None) -> None
|
run_v1_server_async(server: FastMCP1x, host: str | None = None, port: int | None = None, transport: TransportType | None = None) -> None
|
||||||
|
|
@ -101,7 +101,7 @@ Run a FastMCP 1.x server using async methods.
|
||||||
- `transport`: Transport protocol to use
|
- `transport`: Transport protocol to use
|
||||||
|
|
||||||
|
|
||||||
### `run_with_reload` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/run.py#L323" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `run_with_reload` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/run.py#L323" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
run_with_reload(cmd: list[str], reload_dirs: list[Path] | None = None, is_stdio: bool = False) -> None
|
run_with_reload(cmd: list[str], reload_dirs: list[Path] | None = None, is_stdio: bool = False) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ FastMCP tasks CLI for Docket task management.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `check_distributed_backend` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/tasks.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `check_distributed_backend` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/tasks.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
check_distributed_backend() -> None
|
check_distributed_backend() -> None
|
||||||
|
|
@ -26,7 +26,7 @@ to coordinate with the main server process.
|
||||||
- `SystemExit`: If using memory\:// URL
|
- `SystemExit`: If using memory\:// URL
|
||||||
|
|
||||||
|
|
||||||
### `worker` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/cli/tasks.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `worker` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/cli/tasks.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
worker(server_spec: Annotated[str | None, cyclopts.Parameter(help='Python file to run, optionally with :object suffix, or None to auto-detect fastmcp.json')] = None) -> None
|
worker(server_spec: Annotated[str | None, cyclopts.Parameter(help='Python file to run, optionally with :object suffix, or None to auto-detect fastmcp.json')] = None) -> None
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@ sidebarTitle: bearer
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `BearerAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/bearer.py#L11" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `BearerAuth` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/bearer.py#L11" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `auth_flow` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/bearer.py#L15" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `auth_flow` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/bearer.py#L15" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
auth_flow(self, request)
|
auth_flow(self, request)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: oauth
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `check_if_auth_required` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L41" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `check_if_auth_required` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L41" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
check_if_auth_required(mcp_url: str, httpx_kwargs: dict[str, Any] | None = None) -> bool
|
check_if_auth_required(mcp_url: str, httpx_kwargs: dict[str, Any] | None = None) -> bool
|
||||||
|
|
@ -22,47 +22,47 @@ Check if the MCP endpoint requires authentication by making a test request.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ClientNotFoundError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientNotFoundError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Raised when OAuth client credentials are not found on the server.
|
Raised when OAuth client credentials are not found on the server.
|
||||||
|
|
||||||
|
|
||||||
### `TokenStorageAdapter` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L71" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TokenStorageAdapter` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L71" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `clear` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L99" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `clear` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L99" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
clear(self) -> None
|
clear(self) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `get_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L104" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_tokens` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L104" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_tokens(self) -> OAuthToken | None
|
get_tokens(self) -> OAuthToken | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `set_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L108" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_tokens` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L108" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_tokens(self, tokens: OAuthToken) -> None
|
set_tokens(self, tokens: OAuthToken) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `get_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L119" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_client_info` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L119" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_client_info(self) -> OAuthClientInformationFull | None
|
get_client_info(self) -> OAuthClientInformationFull | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `set_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_client_info` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_client_info(self, client_info: OAuthClientInformationFull) -> None
|
set_client_info(self, client_info: OAuthClientInformationFull) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
### `OAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OAuth` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OAuth client provider for MCP servers with browser-based authentication.
|
OAuth client provider for MCP servers with browser-based authentication.
|
||||||
|
|
@ -73,7 +73,7 @@ a browser for user authorization and running a local callback server.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `redirect_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L290" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `redirect_handler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L290" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
redirect_handler(self, authorization_url: str) -> None
|
redirect_handler(self, authorization_url: str) -> None
|
||||||
|
|
@ -82,7 +82,7 @@ redirect_handler(self, authorization_url: str) -> None
|
||||||
Open browser for authorization, with pre-flight check for invalid client.
|
Open browser for authorization, with pre-flight check for invalid client.
|
||||||
|
|
||||||
|
|
||||||
#### `callback_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L311" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `callback_handler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L311" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
callback_handler(self) -> tuple[str, str | None]
|
callback_handler(self) -> tuple[str, str | None]
|
||||||
|
|
@ -91,7 +91,7 @@ callback_handler(self) -> tuple[str, str | None]
|
||||||
Handle OAuth callback and return (auth_code, state).
|
Handle OAuth callback and return (auth_code, state).
|
||||||
|
|
||||||
|
|
||||||
#### `async_auth_flow` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L350" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `async_auth_flow` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L350" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
async_auth_flow(self, request: httpx.Request) -> AsyncGenerator[httpx.Request, httpx.Response]
|
async_auth_flow(self, request: httpx.Request) -> AsyncGenerator[httpx.Request, httpx.Response]
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: client
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ClientSessionState` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientSessionState` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Holds all session-related state for a Client instance.
|
Holds all session-related state for a Client instance.
|
||||||
|
|
@ -16,13 +16,13 @@ This allows clean separation of configuration (which is copied) from
|
||||||
session state (which should be fresh for each new client instance).
|
session state (which should be fresh for each new client instance).
|
||||||
|
|
||||||
|
|
||||||
### `CallToolResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L112" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CallToolResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L112" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Parsed result from a tool call.
|
Parsed result from a tool call.
|
||||||
|
|
||||||
|
|
||||||
### `Client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Client` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
MCP client that delegates connection management to a Transport instance.
|
MCP client that delegates connection management to a Transport instance.
|
||||||
|
|
@ -85,7 +85,7 @@ async with client:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L343" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L343" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
session(self) -> ClientSession
|
session(self) -> ClientSession
|
||||||
|
|
@ -94,7 +94,7 @@ session(self) -> ClientSession
|
||||||
Get the current active session. Raises RuntimeError if not connected.
|
Get the current active session. Raises RuntimeError if not connected.
|
||||||
|
|
||||||
|
|
||||||
#### `initialize_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L353" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `initialize_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L353" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
initialize_result(self) -> mcp.types.InitializeResult | None
|
initialize_result(self) -> mcp.types.InitializeResult | None
|
||||||
|
|
@ -103,7 +103,7 @@ initialize_result(self) -> mcp.types.InitializeResult | None
|
||||||
Get the result of the initialization request.
|
Get the result of the initialization request.
|
||||||
|
|
||||||
|
|
||||||
#### `set_roots` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L357" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_roots` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L357" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_roots(self, roots: RootsList | RootsHandler) -> None
|
set_roots(self, roots: RootsList | RootsHandler) -> None
|
||||||
|
|
@ -112,7 +112,7 @@ set_roots(self, roots: RootsList | RootsHandler) -> None
|
||||||
Set the roots for the client. This does not automatically call `send_roots_list_changed`.
|
Set the roots for the client. This does not automatically call `send_roots_list_changed`.
|
||||||
|
|
||||||
|
|
||||||
#### `set_sampling_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L361" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_sampling_callback` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L361" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_sampling_callback(self, sampling_callback: SamplingHandler, sampling_capabilities: mcp.types.SamplingCapability | None = None) -> None
|
set_sampling_callback(self, sampling_callback: SamplingHandler, sampling_capabilities: mcp.types.SamplingCapability | None = None) -> None
|
||||||
|
|
@ -121,7 +121,7 @@ set_sampling_callback(self, sampling_callback: SamplingHandler, sampling_capabil
|
||||||
Set the sampling callback for the client.
|
Set the sampling callback for the client.
|
||||||
|
|
||||||
|
|
||||||
#### `set_elicitation_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L377" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_elicitation_callback` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L377" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_elicitation_callback(self, elicitation_callback: ElicitationHandler) -> None
|
set_elicitation_callback(self, elicitation_callback: ElicitationHandler) -> None
|
||||||
|
|
@ -130,7 +130,7 @@ set_elicitation_callback(self, elicitation_callback: ElicitationHandler) -> None
|
||||||
Set the elicitation callback for the client.
|
Set the elicitation callback for the client.
|
||||||
|
|
||||||
|
|
||||||
#### `is_connected` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L385" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `is_connected` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L385" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_connected(self) -> bool
|
is_connected(self) -> bool
|
||||||
|
|
@ -139,7 +139,7 @@ is_connected(self) -> bool
|
||||||
Check if the client is currently connected.
|
Check if the client is currently connected.
|
||||||
|
|
||||||
|
|
||||||
#### `new` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L389" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `new` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L389" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
new(self) -> Client[ClientTransportT]
|
new(self) -> Client[ClientTransportT]
|
||||||
|
|
@ -155,7 +155,7 @@ share state with the original client.
|
||||||
- A new Client instance with the same configuration but disconnected state.
|
- A new Client instance with the same configuration but disconnected state.
|
||||||
|
|
||||||
|
|
||||||
#### `initialize` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L434" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `initialize` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L434" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
initialize(self, timeout: datetime.timedelta | float | int | None = None) -> mcp.types.InitializeResult
|
initialize(self, timeout: datetime.timedelta | float | int | None = None) -> mcp.types.InitializeResult
|
||||||
|
|
@ -183,13 +183,13 @@ capabilities, protocol version, and optional instructions.
|
||||||
- `RuntimeError`: If the client is not connected or initialization times out.
|
- `RuntimeError`: If the client is not connected or initialization times out.
|
||||||
|
|
||||||
|
|
||||||
#### `close` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L735" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `close` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L735" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
close(self)
|
close(self)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `ping` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L741" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `ping` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L741" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
ping(self) -> bool
|
ping(self) -> bool
|
||||||
|
|
@ -198,7 +198,7 @@ ping(self) -> bool
|
||||||
Send a ping request.
|
Send a ping request.
|
||||||
|
|
||||||
|
|
||||||
#### `cancel` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L746" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `cancel` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L746" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
cancel(self, request_id: str | int, reason: str | None = None) -> None
|
cancel(self, request_id: str | int, reason: str | None = None) -> None
|
||||||
|
|
@ -207,7 +207,7 @@ cancel(self, request_id: str | int, reason: str | None = None) -> None
|
||||||
Send a cancellation notification for an in-progress request.
|
Send a cancellation notification for an in-progress request.
|
||||||
|
|
||||||
|
|
||||||
#### `progress` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L763" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `progress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L763" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
progress(self, progress_token: str | int, progress: float, total: float | None = None, message: str | None = None) -> None
|
progress(self, progress_token: str | int, progress: float, total: float | None = None, message: str | None = None) -> None
|
||||||
|
|
@ -216,7 +216,7 @@ progress(self, progress_token: str | int, progress: float, total: float | None =
|
||||||
Send a progress notification.
|
Send a progress notification.
|
||||||
|
|
||||||
|
|
||||||
#### `set_logging_level` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L775" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_logging_level` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L775" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_logging_level(self, level: mcp.types.LoggingLevel) -> None
|
set_logging_level(self, level: mcp.types.LoggingLevel) -> None
|
||||||
|
|
@ -225,7 +225,7 @@ set_logging_level(self, level: mcp.types.LoggingLevel) -> None
|
||||||
Send a logging/setLevel request.
|
Send a logging/setLevel request.
|
||||||
|
|
||||||
|
|
||||||
#### `send_roots_list_changed` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L779" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `send_roots_list_changed` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L779" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
send_roots_list_changed(self) -> None
|
send_roots_list_changed(self) -> None
|
||||||
|
|
@ -234,7 +234,7 @@ send_roots_list_changed(self) -> None
|
||||||
Send a roots/list_changed notification.
|
Send a roots/list_changed notification.
|
||||||
|
|
||||||
|
|
||||||
#### `complete_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L785" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `complete_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L785" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
complete_mcp(self, ref: mcp.types.ResourceTemplateReference | mcp.types.PromptReference, argument: dict[str, str], context_arguments: dict[str, Any] | None = None) -> mcp.types.CompleteResult
|
complete_mcp(self, ref: mcp.types.ResourceTemplateReference | mcp.types.PromptReference, argument: dict[str, str], context_arguments: dict[str, Any] | None = None) -> mcp.types.CompleteResult
|
||||||
|
|
@ -257,7 +257,7 @@ containing the completion and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `complete` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L816" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `complete` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L816" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
complete(self, ref: mcp.types.ResourceTemplateReference | mcp.types.PromptReference, argument: dict[str, str], context_arguments: dict[str, Any] | None = None) -> mcp.types.Completion
|
complete(self, ref: mcp.types.ResourceTemplateReference | mcp.types.PromptReference, argument: dict[str, str], context_arguments: dict[str, Any] | None = None) -> mcp.types.Completion
|
||||||
|
|
@ -279,7 +279,7 @@ include with the completion request. Defaults to None.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `generate_name` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L843" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `generate_name` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/client.py#L843" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_name(cls, name: str | None = None) -> str
|
generate_name(cls, name: str | None = None) -> str
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: elicitation
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `create_elicitation_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/elicitation.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_elicitation_callback` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/elicitation.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_elicitation_callback(elicitation_handler: ElicitationHandler) -> ElicitationFnT
|
create_elicitation_callback(elicitation_handler: ElicitationHandler) -> ElicitationFnT
|
||||||
|
|
@ -15,4 +15,4 @@ create_elicitation_callback(elicitation_handler: ElicitationHandler) -> Elicitat
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ElicitResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/elicitation.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ElicitResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/elicitation.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: logging
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `default_log_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/logging.py#L17" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `default_log_handler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/logging.py#L17" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
default_log_handler(message: LogMessage) -> None
|
default_log_handler(message: LogMessage) -> None
|
||||||
|
|
@ -17,7 +17,7 @@ default_log_handler(message: LogMessage) -> None
|
||||||
Default handler that properly routes server log messages to appropriate log levels.
|
Default handler that properly routes server log messages to appropriate log levels.
|
||||||
|
|
||||||
|
|
||||||
### `create_log_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/logging.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_log_callback` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/logging.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_log_callback(handler: LogHandler | None = None) -> LoggingFnT
|
create_log_callback(handler: LogHandler | None = None) -> LoggingFnT
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: messages
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `MessageHandler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L16" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `MessageHandler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L16" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
This class is used to handle MCP messages sent to the client. It is used to handle all messages,
|
This class is used to handle MCP messages sent to the client. It is used to handle all messages,
|
||||||
|
|
@ -16,91 +16,91 @@ requests, notifications, and exceptions. Users can override any of the hooks
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `dispatch` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `dispatch` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
dispatch(self, message: Message) -> None
|
dispatch(self, message: Message) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L76" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L76" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_message(self, message: Message) -> None
|
on_message(self, message: Message) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_request` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L79" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_request` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L79" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_request(self, message: RequestResponder[mcp.types.ServerRequest, mcp.types.ClientResult]) -> None
|
on_request(self, message: RequestResponder[mcp.types.ServerRequest, mcp.types.ClientResult]) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_ping` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L84" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_ping` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L84" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_ping(self, message: mcp.types.PingRequest) -> None
|
on_ping(self, message: mcp.types.PingRequest) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_list_roots` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_roots` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_roots(self, message: mcp.types.ListRootsRequest) -> None
|
on_list_roots(self, message: mcp.types.ListRootsRequest) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_create_message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_create_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_create_message(self, message: mcp.types.CreateMessageRequest) -> None
|
on_create_message(self, message: mcp.types.CreateMessageRequest) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_notification` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L93" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_notification` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L93" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_notification(self, message: mcp.types.ServerNotification) -> None
|
on_notification(self, message: mcp.types.ServerNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_exception` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_exception` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_exception(self, message: Exception) -> None
|
on_exception(self, message: Exception) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_progress` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L99" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_progress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L99" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_progress(self, message: mcp.types.ProgressNotification) -> None
|
on_progress(self, message: mcp.types.ProgressNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_logging_message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L102" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_logging_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L102" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_logging_message(self, message: mcp.types.LoggingMessageNotification) -> None
|
on_logging_message(self, message: mcp.types.LoggingMessageNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_tool_list_changed` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_tool_list_changed` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_tool_list_changed(self, message: mcp.types.ToolListChangedNotification) -> None
|
on_tool_list_changed(self, message: mcp.types.ToolListChangedNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_resource_list_changed` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L112" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_resource_list_changed` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L112" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_resource_list_changed(self, message: mcp.types.ResourceListChangedNotification) -> None
|
on_resource_list_changed(self, message: mcp.types.ResourceListChangedNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_prompt_list_changed` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L117" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_prompt_list_changed` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L117" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_prompt_list_changed(self, message: mcp.types.PromptListChangedNotification) -> None
|
on_prompt_list_changed(self, message: mcp.types.PromptListChangedNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_resource_updated` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_resource_updated` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_resource_updated(self, message: mcp.types.ResourceUpdatedNotification) -> None
|
on_resource_updated(self, message: mcp.types.ResourceUpdatedNotification) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_cancelled` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/messages.py#L127" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_cancelled` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/messages.py#L127" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_cancelled(self, message: mcp.types.CancelledNotification) -> None
|
on_cancelled(self, message: mcp.types.CancelledNotification) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Prompt-related methods for FastMCP Client.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ClientPromptsMixin` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L29" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientPromptsMixin` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L29" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Mixin providing prompt-related methods for Client.
|
Mixin providing prompt-related methods for Client.
|
||||||
|
|
@ -18,7 +18,7 @@ Mixin providing prompt-related methods for Client.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `list_prompts_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_prompts_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_prompts_mcp(self: Client) -> mcp.types.ListPromptsResult
|
list_prompts_mcp(self: Client) -> mcp.types.ListPromptsResult
|
||||||
|
|
@ -38,7 +38,7 @@ containing the list of prompts and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `list_prompts` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L57" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_prompts` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L57" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_prompts(self: Client) -> list[mcp.types.Prompt]
|
list_prompts(self: Client) -> list[mcp.types.Prompt]
|
||||||
|
|
@ -58,7 +58,7 @@ large result sets incrementally), use list_prompts_mcp() with the cursor paramet
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `get_prompt_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_prompt_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_prompt_mcp(self: Client, name: str, arguments: dict[str, Any] | None = None, meta: dict[str, Any] | None = None) -> mcp.types.GetPromptResult
|
get_prompt_mcp(self: Client, name: str, arguments: dict[str, Any] | None = None, meta: dict[str, Any] | None = None) -> mcp.types.GetPromptResult
|
||||||
|
|
@ -80,19 +80,19 @@ containing the prompt messages and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L161" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L161" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_prompt(self: Client, name: str, arguments: dict[str, Any] | None = None) -> mcp.types.GetPromptResult
|
get_prompt(self: Client, name: str, arguments: dict[str, Any] | None = None) -> mcp.types.GetPromptResult
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_prompt(self: Client, name: str, arguments: dict[str, Any] | None = None) -> PromptTask
|
get_prompt(self: Client, name: str, arguments: dict[str, Any] | None = None) -> PromptTask
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L184" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/prompts.py#L184" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_prompt(self: Client, name: str, arguments: dict[str, Any] | None = None) -> mcp.types.GetPromptResult | PromptTask
|
get_prompt(self: Client, name: str, arguments: dict[str, Any] | None = None) -> mcp.types.GetPromptResult | PromptTask
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Resource-related methods for FastMCP Client.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ClientResourcesMixin` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L28" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientResourcesMixin` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L28" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Mixin providing resource-related methods for Client.
|
Mixin providing resource-related methods for Client.
|
||||||
|
|
@ -18,7 +18,7 @@ Mixin providing resource-related methods for Client.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `list_resources_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_resources_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_resources_mcp(self: Client) -> mcp.types.ListResourcesResult
|
list_resources_mcp(self: Client) -> mcp.types.ListResourcesResult
|
||||||
|
|
@ -38,7 +38,7 @@ containing the list of resources and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `list_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_resources` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_resources(self: Client) -> list[mcp.types.Resource]
|
list_resources(self: Client) -> list[mcp.types.Resource]
|
||||||
|
|
@ -58,7 +58,7 @@ large result sets incrementally), use list_resources_mcp() with the cursor param
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `list_resource_templates_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_resource_templates_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_resource_templates_mcp(self: Client) -> mcp.types.ListResourceTemplatesResult
|
list_resource_templates_mcp(self: Client) -> mcp.types.ListResourceTemplatesResult
|
||||||
|
|
@ -78,7 +78,7 @@ containing the list of resource templates and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `list_resource_templates` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L113" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_resource_templates` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L113" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_resource_templates(self: Client) -> list[mcp.types.ResourceTemplate]
|
list_resource_templates(self: Client) -> list[mcp.types.ResourceTemplate]
|
||||||
|
|
@ -99,7 +99,7 @@ cursor parameter.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `read_resource_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read_resource_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read_resource_mcp(self: Client, uri: AnyUrl | str, meta: dict[str, Any] | None = None) -> mcp.types.ReadResourceResult
|
read_resource_mcp(self: Client, uri: AnyUrl | str, meta: dict[str, Any] | None = None) -> mcp.types.ReadResourceResult
|
||||||
|
|
@ -120,19 +120,19 @@ containing the resource contents and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read_resource(self: Client, uri: AnyUrl | str) -> list[mcp.types.TextResourceContents | mcp.types.BlobResourceContents]
|
read_resource(self: Client, uri: AnyUrl | str) -> list[mcp.types.TextResourceContents | mcp.types.BlobResourceContents]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L215" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L215" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read_resource(self: Client, uri: AnyUrl | str) -> ResourceTask
|
read_resource(self: Client, uri: AnyUrl | str) -> ResourceTask
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L226" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/resources.py#L226" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read_resource(self: Client, uri: AnyUrl | str) -> list[mcp.types.TextResourceContents | mcp.types.BlobResourceContents] | ResourceTask
|
read_resource(self: Client, uri: AnyUrl | str) -> list[mcp.types.TextResourceContents | mcp.types.BlobResourceContents] | ResourceTask
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Task management methods for FastMCP Client.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ClientTaskManagementMixin` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientTaskManagementMixin` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Mixin providing task management methods for Client.
|
Mixin providing task management methods for Client.
|
||||||
|
|
@ -18,7 +18,7 @@ Mixin providing task management methods for Client.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_task_status` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_task_status` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_task_status(self: Client, task_id: str) -> GetTaskResult
|
get_task_status(self: Client, task_id: str) -> GetTaskResult
|
||||||
|
|
@ -39,7 +39,7 @@ Sends a 'tasks/get' MCP protocol request over the existing transport.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `get_task_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_task_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_task_result(self: Client, task_id: str) -> Any
|
get_task_result(self: Client, task_id: str) -> Any
|
||||||
|
|
@ -61,7 +61,7 @@ Returns the raw result - callers should parse it appropriately.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `list_tasks` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_tasks` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_tasks(self: Client, cursor: str | None = None, limit: int = 50) -> dict[str, Any]
|
list_tasks(self: Client, cursor: str | None = None, limit: int = 50) -> dict[str, Any]
|
||||||
|
|
@ -87,7 +87,7 @@ querying status for locally tracked task IDs.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `cancel_task` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `cancel_task` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/task_management.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
cancel_task(self: Client, task_id: str) -> mcp.types.CancelTaskResult
|
cancel_task(self: Client, task_id: str) -> mcp.types.CancelTaskResult
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Tool-related methods for FastMCP Client.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ClientToolsMixin` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientToolsMixin` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Mixin providing tool-related methods for Client.
|
Mixin providing tool-related methods for Client.
|
||||||
|
|
@ -18,7 +18,7 @@ Mixin providing tool-related methods for Client.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `list_tools_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_tools_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_tools_mcp(self: Client) -> mcp.types.ListToolsResult
|
list_tools_mcp(self: Client) -> mcp.types.ListToolsResult
|
||||||
|
|
@ -38,7 +38,7 @@ containing the list of tools and any additional metadata.
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `list_tools` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L60" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_tools` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L60" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_tools(self: Client) -> list[mcp.types.Tool]
|
list_tools(self: Client) -> list[mcp.types.Tool]
|
||||||
|
|
@ -58,7 +58,7 @@ large result sets incrementally), use list_tools_mcp() with the cursor parameter
|
||||||
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
- `McpError`: If the request results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `call_tool_mcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `call_tool_mcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
call_tool_mcp(self: Client, name: str, arguments: dict[str, Any], progress_handler: ProgressHandler | None = None, timeout: datetime.timedelta | float | int | None = None, meta: dict[str, Any] | None = None) -> mcp.types.CallToolResult
|
call_tool_mcp(self: Client, name: str, arguments: dict[str, Any], progress_handler: ProgressHandler | None = None, timeout: datetime.timedelta | float | int | None = None, meta: dict[str, Any] | None = None) -> mcp.types.CallToolResult
|
||||||
|
|
@ -88,19 +88,19 @@ containing the tool result and any additional metadata.
|
||||||
- `McpError`: If the tool call requests results in a TimeoutError | JSONRPCError
|
- `McpError`: If the tool call requests results in a TimeoutError | JSONRPCError
|
||||||
|
|
||||||
|
|
||||||
#### `call_tool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L176" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `call_tool` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L176" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
call_tool(self: Client, name: str, arguments: dict[str, Any] | None = None) -> CallToolResult
|
call_tool(self: Client, name: str, arguments: dict[str, Any] | None = None) -> CallToolResult
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `call_tool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L190" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `call_tool` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L190" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
call_tool(self: Client, name: str, arguments: dict[str, Any] | None = None) -> ToolTask
|
call_tool(self: Client, name: str, arguments: dict[str, Any] | None = None) -> ToolTask
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `call_tool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `call_tool` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/mixins/tools.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
call_tool(self: Client, name: str, arguments: dict[str, Any] | None = None) -> CallToolResult | ToolTask
|
call_tool(self: Client, name: str, arguments: dict[str, Any] | None = None) -> CallToolResult | ToolTask
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ and display styled responses to users.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `create_callback_html` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_callback_html` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_callback_html(message: str, is_success: bool = True, title: str = 'FastMCP OAuth', server_url: str | None = None) -> str
|
create_callback_html(message: str, is_success: bool = True, title: str = 'FastMCP OAuth', server_url: str | None = None) -> str
|
||||||
|
|
@ -25,7 +25,7 @@ create_callback_html(message: str, is_success: bool = True, title: str = 'FastMC
|
||||||
Create a styled HTML response for OAuth callbacks.
|
Create a styled HTML response for OAuth callbacks.
|
||||||
|
|
||||||
|
|
||||||
### `create_oauth_callback_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L103" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_oauth_callback_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L103" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_oauth_callback_server(port: int, callback_path: str = '/callback', server_url: str | None = None, result_container: OAuthCallbackResult | None = None, result_ready: anyio.Event | None = None) -> Server
|
create_oauth_callback_server(port: int, callback_path: str = '/callback', server_url: str | None = None, result_container: OAuthCallbackResult | None = None, result_ready: anyio.Event | None = None) -> Server
|
||||||
|
|
@ -47,23 +47,23 @@ Create an OAuth callback server.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `CallbackResponse` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CallbackResponse` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `from_dict` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_dict(cls, data: dict[str, str]) -> CallbackResponse
|
from_dict(cls, data: dict[str, str]) -> CallbackResponse
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `to_dict` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_dict(self) -> dict[str, str]
|
to_dict(self) -> dict[str, str]
|
||||||
```
|
```
|
||||||
|
|
||||||
### `OAuthCallbackResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OAuthCallbackResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/oauth_callback.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Container for OAuth callback results, used with anyio.Event for async coordination.
|
Container for OAuth callback results, used with anyio.Event for async coordination.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: progress
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `default_progress_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/progress.py#L12" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `default_progress_handler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/progress.py#L12" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
default_progress_handler(progress: float, total: float | None, message: str | None) -> None
|
default_progress_handler(progress: float, total: float | None, message: str | None) -> None
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ sidebarTitle: roots
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `convert_roots_list` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/roots.py#L19" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `convert_roots_list` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/roots.py#L19" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
convert_roots_list(roots: RootsList) -> list[mcp.types.Root]
|
convert_roots_list(roots: RootsList) -> list[mcp.types.Root]
|
||||||
```
|
```
|
||||||
|
|
||||||
### `create_roots_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/roots.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_roots_callback` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/roots.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_roots_callback(handler: RootsList | RootsHandler) -> ListRootsFnT
|
create_roots_callback(handler: RootsList | RootsHandler) -> ListRootsFnT
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: __init__
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `create_sampling_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/sampling/__init__.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_sampling_callback` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/sampling/__init__.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_sampling_callback(sampling_handler: SamplingHandler) -> SamplingFnT
|
create_sampling_callback(sampling_handler: SamplingHandler) -> SamplingFnT
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Anthropic sampling handler for FastMCP.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `AnthropicSamplingHandler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/sampling/handlers/anthropic.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AnthropicSamplingHandler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/sampling/handlers/anthropic.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Sampling handler that uses the Anthropic API.
|
Sampling handler that uses the Anthropic API.
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ OpenAI sampling handler for FastMCP.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `OpenAISamplingHandler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/sampling/handlers/openai.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OpenAISamplingHandler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/sampling/handlers/openai.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Sampling handler that uses the OpenAI API.
|
Sampling handler that uses the OpenAI API.
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ SEP-1686 client Task classes.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `TaskNotificationHandler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TaskNotificationHandler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
MessageHandler that routes task status notifications to Task objects.
|
MessageHandler that routes task status notifications to Task objects.
|
||||||
|
|
@ -18,7 +18,7 @@ MessageHandler that routes task status notifications to Task objects.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `dispatch` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `dispatch` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
dispatch(self, message: Message) -> None
|
dispatch(self, message: Message) -> None
|
||||||
|
|
@ -27,7 +27,7 @@ dispatch(self, message: Message) -> None
|
||||||
Dispatch messages, including task status notifications.
|
Dispatch messages, including task status notifications.
|
||||||
|
|
||||||
|
|
||||||
### `Task` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Task` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Abstract base class for MCP background tasks (SEP-1686).
|
Abstract base class for MCP background tasks (SEP-1686).
|
||||||
|
|
@ -38,7 +38,7 @@ or executes synchronously (graceful degradation per SEP-1686).
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `task_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `task_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
task_id(self) -> str
|
task_id(self) -> str
|
||||||
|
|
@ -47,7 +47,7 @@ task_id(self) -> str
|
||||||
Get the task ID.
|
Get the task ID.
|
||||||
|
|
||||||
|
|
||||||
#### `returned_immediately` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `returned_immediately` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
returned_immediately(self) -> bool
|
returned_immediately(self) -> bool
|
||||||
|
|
@ -60,7 +60,7 @@ Check if server executed the task immediately.
|
||||||
- False if server accepted background execution
|
- False if server accepted background execution
|
||||||
|
|
||||||
|
|
||||||
#### `on_status_change` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L145" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_status_change` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L145" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_status_change(self, callback: Callable[[GetTaskResult], None | Awaitable[None]]) -> None
|
on_status_change(self, callback: Callable[[GetTaskResult], None | Awaitable[None]]) -> None
|
||||||
|
|
@ -78,7 +78,7 @@ Supports both sync and async callbacks (auto-detected).
|
||||||
Can return None (sync) or Awaitable[None] (async).
|
Can return None (sync) or Awaitable[None] (async).
|
||||||
|
|
||||||
|
|
||||||
#### `status` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L171" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `status` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L171" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
status(self) -> GetTaskResult
|
status(self) -> GetTaskResult
|
||||||
|
|
@ -90,7 +90,7 @@ If server executed immediately, returns synthetic completed status.
|
||||||
Otherwise queries the server for current status.
|
Otherwise queries the server for current status.
|
||||||
|
|
||||||
|
|
||||||
#### `result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L202" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L202" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
result(self) -> TaskResultT
|
result(self) -> TaskResultT
|
||||||
|
|
@ -101,7 +101,7 @@ Wait for and return the task result.
|
||||||
Must be implemented by subclasses to return the appropriate result type.
|
Must be implemented by subclasses to return the appropriate result type.
|
||||||
|
|
||||||
|
|
||||||
#### `wait` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L209" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `wait` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L209" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
wait(self) -> GetTaskResult
|
wait(self) -> GetTaskResult
|
||||||
|
|
@ -125,7 +125,7 @@ on status changes when server sends notifications/tasks/status.
|
||||||
- `TimeoutError`: If desired state not reached within timeout
|
- `TimeoutError`: If desired state not reached within timeout
|
||||||
|
|
||||||
|
|
||||||
#### `cancel` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L272" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `cancel` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L272" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
cancel(self) -> None
|
cancel(self) -> None
|
||||||
|
|
@ -140,7 +140,7 @@ Note: If server executed immediately (graceful degradation), this is a no-op
|
||||||
as there's no server-side task to cancel.
|
as there's no server-side task to cancel.
|
||||||
|
|
||||||
|
|
||||||
### `ToolTask` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L294" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ToolTask` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L294" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Represents a tool call that may execute in background or immediately.
|
Represents a tool call that may execute in background or immediately.
|
||||||
|
|
@ -151,7 +151,7 @@ or executes synchronously (graceful degradation per SEP-1686).
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L336" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L336" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
result(self) -> CallToolResult
|
result(self) -> CallToolResult
|
||||||
|
|
@ -166,7 +166,7 @@ Otherwise waits for background task to complete and retrieves result.
|
||||||
- The parsed tool result (same as call_tool returns)
|
- The parsed tool result (same as call_tool returns)
|
||||||
|
|
||||||
|
|
||||||
### `PromptTask` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L396" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PromptTask` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L396" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Represents a prompt call that may execute in background or immediately.
|
Represents a prompt call that may execute in background or immediately.
|
||||||
|
|
@ -177,7 +177,7 @@ or executes synchronously (graceful degradation per SEP-1686).
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L427" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L427" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
result(self) -> mcp.types.GetPromptResult
|
result(self) -> mcp.types.GetPromptResult
|
||||||
|
|
@ -192,7 +192,7 @@ Otherwise waits for background task to complete and retrieves result.
|
||||||
- The prompt result with messages and description
|
- The prompt result with messages and description
|
||||||
|
|
||||||
|
|
||||||
### `ResourceTask` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceTask` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Represents a resource read that may execute in background or immediately.
|
Represents a resource read that may execute in background or immediately.
|
||||||
|
|
@ -203,7 +203,7 @@ or executes synchronously (graceful degradation per SEP-1686).
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/tasks.py#L497" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/tasks.py#L497" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
result(self) -> list[mcp.types.TextResourceContents | mcp.types.BlobResourceContents]
|
result(self) -> list[mcp.types.TextResourceContents | mcp.types.BlobResourceContents]
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Client-side telemetry helpers.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `client_span` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/telemetry.py#L12" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `client_span` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/telemetry.py#L12" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
client_span(name: str, method: str, component_key: str, session_id: str | None = None, resource_uri: str | None = None) -> Generator[Span, None, None]
|
client_span(name: str, method: str, component_key: str, session_id: str | None = None, resource_uri: str | None = None) -> Generator[Span, None, None]
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ sidebarTitle: base
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `SessionKwargs` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L23" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SessionKwargs` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L23" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Keyword arguments for the MCP ClientSession constructor.
|
Keyword arguments for the MCP ClientSession constructor.
|
||||||
|
|
||||||
|
|
||||||
### `ClientTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Abstract base class for different MCP client transport mechanisms.
|
Abstract base class for different MCP client transport mechanisms.
|
||||||
|
|
@ -24,7 +24,7 @@ to an MCP server, and providing a ClientSession within an async context.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `connect_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
||||||
|
|
@ -43,7 +43,7 @@ within this context.
|
||||||
constructor (e.g., callbacks, timeouts).
|
constructor (e.g., callbacks, timeouts).
|
||||||
|
|
||||||
|
|
||||||
#### `close` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `close` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L73" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
close(self)
|
close(self)
|
||||||
|
|
@ -52,7 +52,7 @@ close(self)
|
||||||
Close the transport.
|
Close the transport.
|
||||||
|
|
||||||
|
|
||||||
#### `get_session_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L76" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_session_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/base.py#L76" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_session_id(self) -> str | None
|
get_session_id(self) -> str | None
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: config
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `MCPConfigTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/config.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `MCPConfigTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/config.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for connecting to one or more MCP servers defined in an MCPConfig.
|
Transport for connecting to one or more MCP servers defined in an MCPConfig.
|
||||||
|
|
@ -59,13 +59,13 @@ async with client:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `connect_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/config.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/config.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `close` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/config.py#L165" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `close` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/config.py#L165" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
close(self)
|
close(self)
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Streamable HTTP transport for FastMCP Client.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `StreamableHttpTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StreamableHttpTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport implementation that connects to an MCP server via Streamable HTTP Requests.
|
Transport implementation that connects to an MCP server via Streamable HTTP Requests.
|
||||||
|
|
@ -18,19 +18,19 @@ Transport implementation that connects to an MCP server via Streamable HTTP Requ
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `connect_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `get_session_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_session_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_session_id(self) -> str | None
|
get_session_id(self) -> str | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `close` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L146" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `close` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/http.py#L146" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
close(self)
|
close(self)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: inference
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `infer_transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/inference.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `infer_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/inference.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
infer_transport(transport: ClientTransport | FastMCP | FastMCP1Server | AnyUrl | Path | MCPConfig | dict[str, Any] | str) -> ClientTransport
|
infer_transport(transport: ClientTransport | FastMCP | FastMCP1Server | AnyUrl | Path | MCPConfig | dict[str, Any] | str) -> ClientTransport
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: memory
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `FastMCPTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/memory.py#L14" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FastMCPTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/memory.py#L14" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
In-memory transport for FastMCP servers.
|
In-memory transport for FastMCP servers.
|
||||||
|
|
@ -20,7 +20,7 @@ tests or scenarios where client and server run in the same runtime.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `connect_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/memory.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/memory.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Server-Sent Events (SSE) transport for FastMCP Client.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `SSETransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/sse.py#L24" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SSETransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/sse.py#L24" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport implementation that connects to an MCP server via Server-Sent Events.
|
Transport implementation that connects to an MCP server via Server-Sent Events.
|
||||||
|
|
@ -18,7 +18,7 @@ Transport implementation that connects to an MCP server via Server-Sent Events.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `connect_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/sse.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/sse.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: stdio
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `StdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Base transport for connecting to an MCP server via subprocess with stdio.
|
Base transport for connecting to an MCP server via subprocess with stdio.
|
||||||
|
|
@ -18,61 +18,61 @@ transports like Python, Node, Uvx, etc.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `connect_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
connect_session(self, **session_kwargs: Unpack[SessionKwargs]) -> AsyncIterator[ClientSession]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `connect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L84" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `connect` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L84" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
connect(self, **session_kwargs: Unpack[SessionKwargs]) -> ClientSession | None
|
connect(self, **session_kwargs: Unpack[SessionKwargs]) -> ClientSession | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `disconnect` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L120" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `disconnect` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L120" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
disconnect(self)
|
disconnect(self)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `close` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `close` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
close(self)
|
close(self)
|
||||||
```
|
```
|
||||||
|
|
||||||
### `PythonStdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PythonStdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for running Python scripts.
|
Transport for running Python scripts.
|
||||||
|
|
||||||
|
|
||||||
### `FastMCPStdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FastMCPStdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for running FastMCP servers using the FastMCP CLI.
|
Transport for running FastMCP servers using the FastMCP CLI.
|
||||||
|
|
||||||
|
|
||||||
### `NodeStdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `NodeStdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for running Node.js scripts.
|
Transport for running Node.js scripts.
|
||||||
|
|
||||||
|
|
||||||
### `UvStdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L340" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `UvStdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L340" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for running commands via the uv tool.
|
Transport for running commands via the uv tool.
|
||||||
|
|
||||||
|
|
||||||
### `UvxStdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L419" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `UvxStdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L419" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for running commands via the uvx tool.
|
Transport for running commands via the uvx tool.
|
||||||
|
|
||||||
|
|
||||||
### `NpxStdioTransport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L484" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `NpxStdioTransport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/client/transports/stdio.py#L484" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Transport for running commands via the npx tool.
|
Transport for running commands via the npx tool.
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Shared decorator utilities for FastMCP.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `resolve_task_config` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/decorators.py#L17" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resolve_task_config` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/decorators.py#L17" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resolve_task_config(task: bool | TaskConfig | None) -> bool | TaskConfig
|
resolve_task_config(task: bool | TaskConfig | None) -> bool | TaskConfig
|
||||||
|
|
@ -20,7 +20,7 @@ resolve_task_config(task: bool | TaskConfig | None) -> bool | TaskConfig
|
||||||
Resolve task config, defaulting None to False.
|
Resolve task config, defaulting None to False.
|
||||||
|
|
||||||
|
|
||||||
### `get_fastmcp_meta` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/decorators.py#L29" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_fastmcp_meta` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/decorators.py#L29" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_fastmcp_meta(fn: Any) -> Any | None
|
get_fastmcp_meta(fn: Any) -> Any | None
|
||||||
|
|
@ -32,7 +32,7 @@ Extract FastMCP metadata from a function, handling bound methods and wrappers.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `HasFastMCPMeta` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/decorators.py#L23" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `HasFastMCPMeta` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/decorators.py#L23" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Protocol for callables decorated with FastMCP metadata.
|
Protocol for callables decorated with FastMCP metadata.
|
||||||
|
|
|
||||||
|
|
@ -10,61 +10,61 @@ Custom exceptions for FastMCP.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `FastMCPError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L6" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FastMCPError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L6" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Base error for FastMCP.
|
Base error for FastMCP.
|
||||||
|
|
||||||
|
|
||||||
### `ValidationError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L10" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ValidationError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L10" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Error in validating parameters or return values.
|
Error in validating parameters or return values.
|
||||||
|
|
||||||
|
|
||||||
### `ResourceError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L14" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L14" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Error in resource operations.
|
Error in resource operations.
|
||||||
|
|
||||||
|
|
||||||
### `ToolError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L18" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ToolError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L18" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Error in tool operations.
|
Error in tool operations.
|
||||||
|
|
||||||
|
|
||||||
### `PromptError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PromptError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Error in prompt operations.
|
Error in prompt operations.
|
||||||
|
|
||||||
|
|
||||||
### `InvalidSignature` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `InvalidSignature` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Invalid signature for use with FastMCP.
|
Invalid signature for use with FastMCP.
|
||||||
|
|
||||||
|
|
||||||
### `ClientError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Error in client operations.
|
Error in client operations.
|
||||||
|
|
||||||
|
|
||||||
### `NotFoundError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `NotFoundError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Object not found.
|
Object not found.
|
||||||
|
|
||||||
|
|
||||||
### `DisabledError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DisabledError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Object is disabled.
|
Object is disabled.
|
||||||
|
|
||||||
|
|
||||||
### `AuthorizationError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/exceptions.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AuthorizationError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/exceptions.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Error when authorization check fails.
|
Error when authorization check fails.
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ Example configuration:
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `infer_transport_type_from_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `infer_transport_type_from_url` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
infer_transport_type_from_url(url: str | AnyUrl) -> Literal['http', 'sse']
|
infer_transport_type_from_url(url: str | AnyUrl) -> Literal['http', 'sse']
|
||||||
|
|
@ -42,7 +42,7 @@ infer_transport_type_from_url(url: str | AnyUrl) -> Literal['http', 'sse']
|
||||||
Infer the appropriate transport type from the given URL.
|
Infer the appropriate transport type from the given URL.
|
||||||
|
|
||||||
|
|
||||||
### `update_config_file` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L345" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `update_config_file` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L345" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
update_config_file(file_path: Path, server_name: str, server_config: CanonicalMCPServerTypes) -> None
|
update_config_file(file_path: Path, server_name: str, server_config: CanonicalMCPServerTypes) -> None
|
||||||
|
|
@ -57,7 +57,7 @@ worry about transforming server objects here.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `StdioMCPServer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L155" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StdioMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L155" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
MCP server configuration for stdio transport.
|
MCP server configuration for stdio transport.
|
||||||
|
|
@ -67,19 +67,19 @@ This is the canonical configuration format for MCP servers using stdio transport
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L188" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L188" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_transport(self) -> StdioTransport
|
to_transport(self) -> StdioTransport
|
||||||
```
|
```
|
||||||
|
|
||||||
### `TransformingStdioMCPServer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L200" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TransformingStdioMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L200" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A Stdio server with tool transforms.
|
A Stdio server with tool transforms.
|
||||||
|
|
||||||
|
|
||||||
### `RemoteMCPServer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L204" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `RemoteMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L204" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
MCP server configuration for HTTP/SSE transport.
|
MCP server configuration for HTTP/SSE transport.
|
||||||
|
|
@ -89,19 +89,19 @@ This is the canonical configuration format for MCP servers using remote transpor
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L240" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L240" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_transport(self) -> StreamableHttpTransport | SSETransport
|
to_transport(self) -> StreamableHttpTransport | SSETransport
|
||||||
```
|
```
|
||||||
|
|
||||||
### `TransformingRemoteMCPServer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L265" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TransformingRemoteMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L265" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A Remote server with tool transforms.
|
A Remote server with tool transforms.
|
||||||
|
|
||||||
|
|
||||||
### `MCPConfig` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L276" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `MCPConfig` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L276" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A configuration object for MCP Servers that conforms to the canonical MCP configuration format
|
A configuration object for MCP Servers that conforms to the canonical MCP configuration format
|
||||||
|
|
@ -113,7 +113,7 @@ For an MCPConfig that is strictly canonical, see the `CanonicalMCPConfig` class.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `wrap_servers_at_root` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L290" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `wrap_servers_at_root` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L290" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
wrap_servers_at_root(cls, values: dict[str, Any]) -> dict[str, Any]
|
wrap_servers_at_root(cls, values: dict[str, Any]) -> dict[str, Any]
|
||||||
|
|
@ -122,7 +122,7 @@ wrap_servers_at_root(cls, values: dict[str, Any]) -> dict[str, Any]
|
||||||
If there's no mcpServers key but there are server configs at root, wrap them.
|
If there's no mcpServers key but there are server configs at root, wrap them.
|
||||||
|
|
||||||
|
|
||||||
#### `add_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L303" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L303" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_server(self, name: str, server: MCPServerTypes) -> None
|
add_server(self, name: str, server: MCPServerTypes) -> None
|
||||||
|
|
@ -131,7 +131,7 @@ add_server(self, name: str, server: MCPServerTypes) -> None
|
||||||
Add or update a server in the configuration.
|
Add or update a server in the configuration.
|
||||||
|
|
||||||
|
|
||||||
#### `from_dict` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L308" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L308" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_dict(cls, config: dict[str, Any]) -> Self
|
from_dict(cls, config: dict[str, Any]) -> Self
|
||||||
|
|
@ -140,7 +140,7 @@ from_dict(cls, config: dict[str, Any]) -> Self
|
||||||
Parse MCP configuration from dictionary format.
|
Parse MCP configuration from dictionary format.
|
||||||
|
|
||||||
|
|
||||||
#### `to_dict` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L312" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L312" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_dict(self) -> dict[str, Any]
|
to_dict(self) -> dict[str, Any]
|
||||||
|
|
@ -149,7 +149,7 @@ to_dict(self) -> dict[str, Any]
|
||||||
Convert MCPConfig to dictionary format, preserving all fields.
|
Convert MCPConfig to dictionary format, preserving all fields.
|
||||||
|
|
||||||
|
|
||||||
#### `write_to_file` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L316" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `write_to_file` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L316" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
write_to_file(self, file_path: Path) -> None
|
write_to_file(self, file_path: Path) -> None
|
||||||
|
|
@ -158,7 +158,7 @@ write_to_file(self, file_path: Path) -> None
|
||||||
Write configuration to JSON file.
|
Write configuration to JSON file.
|
||||||
|
|
||||||
|
|
||||||
#### `from_file` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L322" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_file` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L322" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_file(cls, file_path: Path) -> Self
|
from_file(cls, file_path: Path) -> Self
|
||||||
|
|
@ -167,7 +167,7 @@ from_file(cls, file_path: Path) -> Self
|
||||||
Load configuration from JSON file.
|
Load configuration from JSON file.
|
||||||
|
|
||||||
|
|
||||||
### `CanonicalMCPConfig` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L330" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CanonicalMCPConfig` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L330" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Canonical MCP configuration format.
|
Canonical MCP configuration format.
|
||||||
|
|
@ -178,7 +178,7 @@ The format is designed to be client-agnostic and extensible for future use cases
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `add_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/mcp_config.py#L340" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/mcp_config.py#L340" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_server(self, name: str, server: CanonicalMCPServerTypes) -> None
|
add_server(self, name: str, server: CanonicalMCPServerTypes) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Standalone @prompt decorator for FastMCP.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L398" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L398" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
prompt(name_or_fn: str | Callable[..., Any] | None = None) -> Any
|
prompt(name_or_fn: str | Callable[..., Any] | None = None) -> Any
|
||||||
|
|
@ -25,19 +25,19 @@ using mcp.add_prompt().
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DecoratedPrompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L49" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DecoratedPrompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L49" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Protocol for functions decorated with @prompt.
|
Protocol for functions decorated with @prompt.
|
||||||
|
|
||||||
|
|
||||||
### `PromptMeta` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L58" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PromptMeta` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L58" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Metadata attached to functions by the @prompt decorator.
|
Metadata attached to functions by the @prompt decorator.
|
||||||
|
|
||||||
|
|
||||||
### `FunctionPrompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L74" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FunctionPrompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L74" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A prompt that is a function.
|
A prompt that is a function.
|
||||||
|
|
@ -45,7 +45,7 @@ A prompt that is a function.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_function` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_function(cls, fn: Callable[..., Any]) -> FunctionPrompt
|
from_function(cls, fn: Callable[..., Any]) -> FunctionPrompt
|
||||||
|
|
@ -66,7 +66,7 @@ The function can return:
|
||||||
- PromptResult: used directly
|
- PromptResult: used directly
|
||||||
|
|
||||||
|
|
||||||
#### `render` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L281" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `render` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L281" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
render(self, arguments: dict[str, Any] | None = None) -> PromptResult
|
render(self, arguments: dict[str, Any] | None = None) -> PromptResult
|
||||||
|
|
@ -75,7 +75,7 @@ render(self, arguments: dict[str, Any] | None = None) -> PromptResult
|
||||||
Render the prompt with arguments.
|
Render the prompt with arguments.
|
||||||
|
|
||||||
|
|
||||||
#### `register_with_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L331" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_with_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L331" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_with_docket(self, docket: Docket) -> None
|
register_with_docket(self, docket: Docket) -> None
|
||||||
|
|
@ -87,7 +87,7 @@ FunctionPrompt registers the underlying function, which has the user's
|
||||||
Depends parameters for docket to resolve.
|
Depends parameters for docket to resolve.
|
||||||
|
|
||||||
|
|
||||||
#### `add_to_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L341" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_to_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/function_prompt.py#L341" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_to_docket(self, docket: Docket, arguments: dict[str, Any] | None, **kwargs: Any) -> Execution
|
add_to_docket(self, docket: Docket, arguments: dict[str, Any] | None, **kwargs: Any) -> Execution
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Base classes for FastMCP prompts.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `Message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L41" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L41" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Wrapper for prompt message with auto-serialization.
|
Wrapper for prompt message with auto-serialization.
|
||||||
|
|
@ -21,7 +21,7 @@ Accepts any content - strings pass through, other types
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_mcp_prompt_message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L91" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_prompt_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L91" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_prompt_message(self) -> PromptMessage
|
to_mcp_prompt_message(self) -> PromptMessage
|
||||||
|
|
@ -30,13 +30,13 @@ to_mcp_prompt_message(self) -> PromptMessage
|
||||||
Convert to MCP PromptMessage.
|
Convert to MCP PromptMessage.
|
||||||
|
|
||||||
|
|
||||||
### `PromptArgument` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PromptArgument` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L96" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
An argument that can be passed to a prompt.
|
An argument that can be passed to a prompt.
|
||||||
|
|
||||||
|
|
||||||
### `PromptResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L108" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PromptResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L108" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Canonical result type for prompt rendering.
|
Canonical result type for prompt rendering.
|
||||||
|
|
@ -47,7 +47,7 @@ roles, and metadata at both the message and result level.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_mcp_prompt_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L180" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_prompt_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L180" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_prompt_result(self) -> GetPromptResult
|
to_mcp_prompt_result(self) -> GetPromptResult
|
||||||
|
|
@ -56,7 +56,7 @@ to_mcp_prompt_result(self) -> GetPromptResult
|
||||||
Convert to MCP GetPromptResult.
|
Convert to MCP GetPromptResult.
|
||||||
|
|
||||||
|
|
||||||
### `Prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L190" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L190" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A prompt template that can be rendered with parameters.
|
A prompt template that can be rendered with parameters.
|
||||||
|
|
@ -64,7 +64,7 @@ A prompt template that can be rendered with parameters.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_mcp_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L202" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L202" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_prompt(self, **overrides: Any) -> SDKPrompt
|
to_mcp_prompt(self, **overrides: Any) -> SDKPrompt
|
||||||
|
|
@ -73,7 +73,7 @@ to_mcp_prompt(self, **overrides: Any) -> SDKPrompt
|
||||||
Convert the prompt to an MCP prompt.
|
Convert the prompt to an MCP prompt.
|
||||||
|
|
||||||
|
|
||||||
#### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L228" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_function` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L228" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_function(cls, fn: Callable[..., Any]) -> FunctionPrompt
|
from_function(cls, fn: Callable[..., Any]) -> FunctionPrompt
|
||||||
|
|
@ -87,7 +87,7 @@ The function can return:
|
||||||
- PromptResult: used directly
|
- PromptResult: used directly
|
||||||
|
|
||||||
|
|
||||||
#### `render` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L264" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `render` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L264" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
render(self, arguments: dict[str, Any] | None = None) -> str | list[Message | str] | PromptResult
|
render(self, arguments: dict[str, Any] | None = None) -> str | list[Message | str] | PromptResult
|
||||||
|
|
@ -101,7 +101,7 @@ Subclasses must implement this method. Return one of:
|
||||||
- PromptResult: Used directly
|
- PromptResult: Used directly
|
||||||
|
|
||||||
|
|
||||||
#### `convert_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L277" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `convert_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L277" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
convert_result(self, raw_value: Any) -> PromptResult
|
convert_result(self, raw_value: Any) -> PromptResult
|
||||||
|
|
@ -113,7 +113,7 @@ Convert a raw return value to PromptResult.
|
||||||
- `TypeError`: for unsupported types
|
- `TypeError`: for unsupported types
|
||||||
|
|
||||||
|
|
||||||
#### `register_with_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L367" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_with_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L367" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_with_docket(self, docket: Docket) -> None
|
register_with_docket(self, docket: Docket) -> None
|
||||||
|
|
@ -122,7 +122,7 @@ register_with_docket(self, docket: Docket) -> None
|
||||||
Register this prompt with docket for background execution.
|
Register this prompt with docket for background execution.
|
||||||
|
|
||||||
|
|
||||||
#### `add_to_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L373" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_to_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L373" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_to_docket(self, docket: Docket, arguments: dict[str, Any] | None, **kwargs: Any) -> Execution
|
add_to_docket(self, docket: Docket, arguments: dict[str, Any] | None, **kwargs: Any) -> Execution
|
||||||
|
|
@ -138,7 +138,7 @@ Schedule this prompt for background execution via docket.
|
||||||
- `**kwargs`: Additional kwargs passed to docket.add()
|
- `**kwargs`: Additional kwargs passed to docket.add()
|
||||||
|
|
||||||
|
|
||||||
#### `get_span_attributes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L396" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_span_attributes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/prompts/prompt.py#L396" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_span_attributes(self) -> dict[str, Any]
|
get_span_attributes(self) -> dict[str, Any]
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Standalone @resource decorator for FastMCP.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L236" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L236" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resource(uri: str) -> Callable[[F], F]
|
resource(uri: str) -> Callable[[F], F]
|
||||||
|
|
@ -25,19 +25,19 @@ using mcp.add_resource().
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DecoratedResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DecoratedResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Protocol for functions decorated with @resource.
|
Protocol for functions decorated with @resource.
|
||||||
|
|
||||||
|
|
||||||
### `ResourceMeta` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceMeta` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Metadata attached to functions by the @resource decorator.
|
Metadata attached to functions by the @resource decorator.
|
||||||
|
|
||||||
|
|
||||||
### `FunctionResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FunctionResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A resource that defers data loading by wrapping a function.
|
A resource that defers data loading by wrapping a function.
|
||||||
|
|
@ -54,7 +54,7 @@ The function can return:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_function` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_function(cls, fn: Callable[..., Any], uri: str | AnyUrl | None = None) -> FunctionResource
|
from_function(cls, fn: Callable[..., Any], uri: str | AnyUrl | None = None) -> FunctionResource
|
||||||
|
|
@ -71,7 +71,7 @@ individual parameters must not be passed.
|
||||||
Cannot be used together with metadata parameter.
|
Cannot be used together with metadata parameter.
|
||||||
|
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L204" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L204" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> str | bytes | ResourceResult
|
read(self) -> str | bytes | ResourceResult
|
||||||
|
|
@ -80,7 +80,7 @@ read(self) -> str | bytes | ResourceResult
|
||||||
Read the resource by calling the wrapped function.
|
Read the resource by calling the wrapped function.
|
||||||
|
|
||||||
|
|
||||||
#### `register_with_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L225" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_with_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/function_resource.py#L225" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_with_docket(self, docket: Docket) -> None
|
register_with_docket(self, docket: Docket) -> None
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Base classes and interfaces for FastMCP resources.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ResourceContent` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceContent` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Wrapper for resource content with optional MIME type and metadata.
|
Wrapper for resource content with optional MIME type and metadata.
|
||||||
|
|
@ -21,7 +21,7 @@ other types (dict, list, BaseModel, etc.) are automatically JSON-serialized.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_mcp_resource_contents` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_resource_contents` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_resource_contents(self, uri: AnyUrl | str) -> mcp.types.TextResourceContents | mcp.types.BlobResourceContents
|
to_mcp_resource_contents(self, uri: AnyUrl | str) -> mcp.types.TextResourceContents | mcp.types.BlobResourceContents
|
||||||
|
|
@ -36,7 +36,7 @@ Convert to MCP resource contents type.
|
||||||
- TextResourceContents for str content, BlobResourceContents for bytes
|
- TextResourceContents for str content, BlobResourceContents for bytes
|
||||||
|
|
||||||
|
|
||||||
### `ResourceResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L119" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L119" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Canonical result type for resource reads.
|
Canonical result type for resource reads.
|
||||||
|
|
@ -47,7 +47,7 @@ per-item MIME types, and metadata at both the item and result level.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `to_mcp_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L194" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L194" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_result(self, uri: AnyUrl | str) -> mcp.types.ReadResourceResult
|
to_mcp_result(self, uri: AnyUrl | str) -> mcp.types.ReadResourceResult
|
||||||
|
|
@ -62,7 +62,7 @@ Convert to MCP ReadResourceResult.
|
||||||
- MCP ReadResourceResult with converted contents
|
- MCP ReadResourceResult with converted contents
|
||||||
|
|
||||||
|
|
||||||
### `Resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L210" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L210" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Base class for all resources.
|
Base class for all resources.
|
||||||
|
|
@ -70,13 +70,13 @@ Base class for all resources.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L235" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_function` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L235" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_function(cls, fn: Callable[..., Any], uri: str | AnyUrl) -> FunctionResource
|
from_function(cls, fn: Callable[..., Any], uri: str | AnyUrl) -> FunctionResource
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `set_default_mime_type` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L274" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_default_mime_type` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L274" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_default_mime_type(cls, mime_type: str | None) -> str
|
set_default_mime_type(cls, mime_type: str | None) -> str
|
||||||
|
|
@ -85,7 +85,7 @@ set_default_mime_type(cls, mime_type: str | None) -> str
|
||||||
Set default MIME type if not provided.
|
Set default MIME type if not provided.
|
||||||
|
|
||||||
|
|
||||||
#### `set_default_name` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L281" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_default_name` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L281" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_default_name(self) -> Self
|
set_default_name(self) -> Self
|
||||||
|
|
@ -94,7 +94,7 @@ set_default_name(self) -> Self
|
||||||
Set default name from URI if not provided.
|
Set default name from URI if not provided.
|
||||||
|
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L291" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L291" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> str | bytes | ResourceResult
|
read(self) -> str | bytes | ResourceResult
|
||||||
|
|
@ -108,7 +108,7 @@ Subclasses implement this to return resource data. Supported return types:
|
||||||
- ResourceResult: Full control over contents and result-level meta
|
- ResourceResult: Full control over contents and result-level meta
|
||||||
|
|
||||||
|
|
||||||
#### `convert_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L303" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `convert_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L303" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
convert_result(self, raw_value: Any) -> ResourceResult
|
convert_result(self, raw_value: Any) -> ResourceResult
|
||||||
|
|
@ -131,7 +131,7 @@ MCP Apps CSP/permissions) is propagated to each content item so
|
||||||
that hosts can read it from the ``resources/read`` response.
|
that hosts can read it from the ``resources/read`` response.
|
||||||
|
|
||||||
|
|
||||||
#### `to_mcp_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_resource(self, **overrides: Any) -> SDKResource
|
to_mcp_resource(self, **overrides: Any) -> SDKResource
|
||||||
|
|
@ -140,7 +140,7 @@ to_mcp_resource(self, **overrides: Any) -> SDKResource
|
||||||
Convert the resource to an SDKResource.
|
Convert the resource to an SDKResource.
|
||||||
|
|
||||||
|
|
||||||
#### `key` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L397" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `key` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L397" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
key(self) -> str
|
key(self) -> str
|
||||||
|
|
@ -149,7 +149,7 @@ key(self) -> str
|
||||||
The globally unique lookup key for this resource.
|
The globally unique lookup key for this resource.
|
||||||
|
|
||||||
|
|
||||||
#### `register_with_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L402" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_with_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L402" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_with_docket(self, docket: Docket) -> None
|
register_with_docket(self, docket: Docket) -> None
|
||||||
|
|
@ -158,7 +158,7 @@ register_with_docket(self, docket: Docket) -> None
|
||||||
Register this resource with docket for background execution.
|
Register this resource with docket for background execution.
|
||||||
|
|
||||||
|
|
||||||
#### `add_to_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L408" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_to_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L408" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_to_docket(self, docket: Docket, **kwargs: Any) -> Execution
|
add_to_docket(self, docket: Docket, **kwargs: Any) -> Execution
|
||||||
|
|
@ -173,7 +173,7 @@ Schedule this resource for background execution via docket.
|
||||||
- `**kwargs`: Additional kwargs passed to docket.add()
|
- `**kwargs`: Additional kwargs passed to docket.add()
|
||||||
|
|
||||||
|
|
||||||
#### `get_span_attributes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/resource.py#L429" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_span_attributes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/resource.py#L429" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_span_attributes(self) -> dict[str, Any]
|
get_span_attributes(self) -> dict[str, Any]
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Resource template functionality.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `extract_query_params` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `extract_query_params` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
extract_query_params(uri_template: str) -> set[str]
|
extract_query_params(uri_template: str) -> set[str]
|
||||||
|
|
@ -20,7 +20,7 @@ extract_query_params(uri_template: str) -> set[str]
|
||||||
Extract query parameter names from RFC 6570 `{?param1,param2}` syntax.
|
Extract query parameter names from RFC 6570 `{?param1,param2}` syntax.
|
||||||
|
|
||||||
|
|
||||||
### `build_regex` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `build_regex` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
build_regex(template: str) -> re.Pattern
|
build_regex(template: str) -> re.Pattern
|
||||||
|
|
@ -35,7 +35,7 @@ Supports:
|
||||||
- `{?var1,var2}` - query parameters (ignored in path matching)
|
- `{?var1,var2}` - query parameters (ignored in path matching)
|
||||||
|
|
||||||
|
|
||||||
### `match_uri_template` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `match_uri_template` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
match_uri_template(uri: str, uri_template: str) -> dict[str, str] | None
|
match_uri_template(uri: str, uri_template: str) -> dict[str, str] | None
|
||||||
|
|
@ -51,7 +51,7 @@ Supports RFC 6570 URI templates:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ResourceTemplate` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L103" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceTemplate` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L103" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A template for dynamically creating resources.
|
A template for dynamically creating resources.
|
||||||
|
|
@ -59,13 +59,13 @@ A template for dynamically creating resources.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L130" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_function` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L130" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_function(fn: Callable[..., Any], uri_template: str, name: str | None = None, version: str | int | None = None, title: str | None = None, description: str | None = None, icons: list[Icon] | None = None, mime_type: str | None = None, tags: set[str] | None = None, annotations: Annotations | None = None, meta: dict[str, Any] | None = None, task: bool | TaskConfig | None = None, auth: AuthCheck | list[AuthCheck] | None = None) -> FunctionResourceTemplate
|
from_function(fn: Callable[..., Any], uri_template: str, name: str | None = None, version: str | int | None = None, title: str | None = None, description: str | None = None, icons: list[Icon] | None = None, mime_type: str | None = None, tags: set[str] | None = None, annotations: Annotations | None = None, meta: dict[str, Any] | None = None, task: bool | TaskConfig | None = None, auth: AuthCheck | list[AuthCheck] | None = None) -> FunctionResourceTemplate
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `set_default_mime_type` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L163" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_default_mime_type` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L163" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_default_mime_type(cls, mime_type: str | None) -> str
|
set_default_mime_type(cls, mime_type: str | None) -> str
|
||||||
|
|
@ -74,7 +74,7 @@ set_default_mime_type(cls, mime_type: str | None) -> str
|
||||||
Set default MIME type if not provided.
|
Set default MIME type if not provided.
|
||||||
|
|
||||||
|
|
||||||
#### `matches` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L169" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `matches` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L169" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
matches(self, uri: str) -> dict[str, Any] | None
|
matches(self, uri: str) -> dict[str, Any] | None
|
||||||
|
|
@ -83,7 +83,7 @@ matches(self, uri: str) -> dict[str, Any] | None
|
||||||
Check if URI matches template and extract parameters.
|
Check if URI matches template and extract parameters.
|
||||||
|
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L173" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L173" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self, arguments: dict[str, Any]) -> str | bytes | ResourceResult
|
read(self, arguments: dict[str, Any]) -> str | bytes | ResourceResult
|
||||||
|
|
@ -92,7 +92,7 @@ read(self, arguments: dict[str, Any]) -> str | bytes | ResourceResult
|
||||||
Read the resource content.
|
Read the resource content.
|
||||||
|
|
||||||
|
|
||||||
#### `convert_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L179" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `convert_result` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L179" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
convert_result(self, raw_value: Any) -> ResourceResult
|
convert_result(self, raw_value: Any) -> ResourceResult
|
||||||
|
|
@ -108,7 +108,7 @@ Handles ResourceResult passthrough and converts raw values using
|
||||||
ResourceResult's normalization.
|
ResourceResult's normalization.
|
||||||
|
|
||||||
|
|
||||||
#### `create_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L243" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `create_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L243" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_resource(self, uri: str, params: dict[str, Any]) -> Resource
|
create_resource(self, uri: str, params: dict[str, Any]) -> Resource
|
||||||
|
|
@ -120,7 +120,7 @@ The base implementation does not support background tasks.
|
||||||
Use FunctionResourceTemplate for task support.
|
Use FunctionResourceTemplate for task support.
|
||||||
|
|
||||||
|
|
||||||
#### `to_mcp_template` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L254" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `to_mcp_template` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L254" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
to_mcp_template(self, **overrides: Any) -> SDKResourceTemplate
|
to_mcp_template(self, **overrides: Any) -> SDKResourceTemplate
|
||||||
|
|
@ -129,7 +129,7 @@ to_mcp_template(self, **overrides: Any) -> SDKResourceTemplate
|
||||||
Convert the resource template to an SDKResourceTemplate.
|
Convert the resource template to an SDKResourceTemplate.
|
||||||
|
|
||||||
|
|
||||||
#### `from_mcp_template` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L274" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_mcp_template` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L274" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_mcp_template(cls, mcp_template: SDKResourceTemplate) -> ResourceTemplate
|
from_mcp_template(cls, mcp_template: SDKResourceTemplate) -> ResourceTemplate
|
||||||
|
|
@ -138,7 +138,7 @@ from_mcp_template(cls, mcp_template: SDKResourceTemplate) -> ResourceTemplate
|
||||||
Creates a FastMCP ResourceTemplate from a raw MCP ResourceTemplate object.
|
Creates a FastMCP ResourceTemplate from a raw MCP ResourceTemplate object.
|
||||||
|
|
||||||
|
|
||||||
#### `key` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `key` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
key(self) -> str
|
key(self) -> str
|
||||||
|
|
@ -147,7 +147,7 @@ key(self) -> str
|
||||||
The globally unique lookup key for this template.
|
The globally unique lookup key for this template.
|
||||||
|
|
||||||
|
|
||||||
#### `register_with_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L292" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_with_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L292" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_with_docket(self, docket: Docket) -> None
|
register_with_docket(self, docket: Docket) -> None
|
||||||
|
|
@ -156,7 +156,7 @@ register_with_docket(self, docket: Docket) -> None
|
||||||
Register this template with docket for background execution.
|
Register this template with docket for background execution.
|
||||||
|
|
||||||
|
|
||||||
#### `add_to_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L298" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_to_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L298" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_to_docket(self, docket: Docket, params: dict[str, Any], **kwargs: Any) -> Execution
|
add_to_docket(self, docket: Docket, params: dict[str, Any], **kwargs: Any) -> Execution
|
||||||
|
|
@ -172,13 +172,13 @@ Schedule this template for background execution via docket.
|
||||||
- `**kwargs`: Additional kwargs passed to docket.add()
|
- `**kwargs`: Additional kwargs passed to docket.add()
|
||||||
|
|
||||||
|
|
||||||
#### `get_span_attributes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L321" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_span_attributes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L321" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_span_attributes(self) -> dict[str, Any]
|
get_span_attributes(self) -> dict[str, Any]
|
||||||
```
|
```
|
||||||
|
|
||||||
### `FunctionResourceTemplate` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L328" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FunctionResourceTemplate` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L328" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A template for dynamically creating resources.
|
A template for dynamically creating resources.
|
||||||
|
|
@ -186,7 +186,7 @@ A template for dynamically creating resources.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `create_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `create_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_resource(self, uri: str, params: dict[str, Any]) -> Resource
|
create_resource(self, uri: str, params: dict[str, Any]) -> Resource
|
||||||
|
|
@ -195,7 +195,7 @@ create_resource(self, uri: str, params: dict[str, Any]) -> Resource
|
||||||
Create a resource from the template with the given parameters.
|
Create a resource from the template with the given parameters.
|
||||||
|
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L393" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L393" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self, arguments: dict[str, Any]) -> str | bytes | ResourceResult
|
read(self, arguments: dict[str, Any]) -> str | bytes | ResourceResult
|
||||||
|
|
@ -204,7 +204,7 @@ read(self, arguments: dict[str, Any]) -> str | bytes | ResourceResult
|
||||||
Read the resource content.
|
Read the resource content.
|
||||||
|
|
||||||
|
|
||||||
#### `register_with_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L424" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_with_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L424" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_with_docket(self, docket: Docket) -> None
|
register_with_docket(self, docket: Docket) -> None
|
||||||
|
|
@ -216,7 +216,7 @@ FunctionResourceTemplate registers the underlying function, which has the
|
||||||
user's Depends parameters for docket to resolve.
|
user's Depends parameters for docket to resolve.
|
||||||
|
|
||||||
|
|
||||||
#### `add_to_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L434" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `add_to_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L434" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
add_to_docket(self, docket: Docket, params: dict[str, Any], **kwargs: Any) -> Execution
|
add_to_docket(self, docket: Docket, params: dict[str, Any], **kwargs: Any) -> Execution
|
||||||
|
|
@ -234,7 +234,7 @@ FunctionResourceTemplate splats the params dict since .fn expects **kwargs.
|
||||||
- `**kwargs`: Additional kwargs passed to docket.add()
|
- `**kwargs`: Additional kwargs passed to docket.add()
|
||||||
|
|
||||||
|
|
||||||
#### `from_function` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/template.py#L460" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `from_function` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/template.py#L460" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from_function(cls, fn: Callable[..., Any], uri_template: str, name: str | None = None, version: str | int | None = None, title: str | None = None, description: str | None = None, icons: list[Icon] | None = None, mime_type: str | None = None, tags: set[str] | None = None, annotations: Annotations | None = None, meta: dict[str, Any] | None = None, task: bool | TaskConfig | None = None, auth: AuthCheck | list[AuthCheck] | None = None) -> FunctionResourceTemplate
|
from_function(cls, fn: Callable[..., Any], uri_template: str, name: str | None = None, version: str | int | None = None, title: str | None = None, description: str | None = None, icons: list[Icon] | None = None, mime_type: str | None = None, tags: set[str] | None = None, annotations: Annotations | None = None, meta: dict[str, Any] | None = None, task: bool | TaskConfig | None = None, auth: AuthCheck | list[AuthCheck] | None = None) -> FunctionResourceTemplate
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Concrete resource implementations.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `TextResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L21" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TextResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L21" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A resource that reads from a string.
|
A resource that reads from a string.
|
||||||
|
|
@ -18,7 +18,7 @@ A resource that reads from a string.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> ResourceResult
|
read(self) -> ResourceResult
|
||||||
|
|
@ -27,7 +27,7 @@ read(self) -> ResourceResult
|
||||||
Read the text content.
|
Read the text content.
|
||||||
|
|
||||||
|
|
||||||
### `BinaryResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `BinaryResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A resource that reads from bytes.
|
A resource that reads from bytes.
|
||||||
|
|
@ -35,7 +35,7 @@ A resource that reads from bytes.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> ResourceResult
|
read(self) -> ResourceResult
|
||||||
|
|
@ -44,7 +44,7 @@ read(self) -> ResourceResult
|
||||||
Read the binary content.
|
Read the binary content.
|
||||||
|
|
||||||
|
|
||||||
### `FileResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `FileResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A resource that reads from a file.
|
A resource that reads from a file.
|
||||||
|
|
@ -54,7 +54,7 @@ Set is_binary=True to read file as binary data instead of text.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `validate_absolute_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L67" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_absolute_path` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L67" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_absolute_path(cls, path: Path) -> Path
|
validate_absolute_path(cls, path: Path) -> Path
|
||||||
|
|
@ -63,7 +63,7 @@ validate_absolute_path(cls, path: Path) -> Path
|
||||||
Ensure path is absolute.
|
Ensure path is absolute.
|
||||||
|
|
||||||
|
|
||||||
#### `set_binary_from_mime_type` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L75" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_binary_from_mime_type` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L75" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_binary_from_mime_type(cls, is_binary: bool, info: ValidationInfo) -> bool
|
set_binary_from_mime_type(cls, is_binary: bool, info: ValidationInfo) -> bool
|
||||||
|
|
@ -72,7 +72,7 @@ set_binary_from_mime_type(cls, is_binary: bool, info: ValidationInfo) -> bool
|
||||||
Set is_binary based on mime_type if not explicitly set.
|
Set is_binary based on mime_type if not explicitly set.
|
||||||
|
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L83" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L83" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> ResourceResult
|
read(self) -> ResourceResult
|
||||||
|
|
@ -81,7 +81,7 @@ read(self) -> ResourceResult
|
||||||
Read the file content.
|
Read the file content.
|
||||||
|
|
||||||
|
|
||||||
### `HttpResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L97" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `HttpResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L97" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A resource that reads from an HTTP endpoint.
|
A resource that reads from an HTTP endpoint.
|
||||||
|
|
@ -89,7 +89,7 @@ A resource that reads from an HTTP endpoint.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L106" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L106" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> ResourceResult
|
read(self) -> ResourceResult
|
||||||
|
|
@ -98,7 +98,7 @@ read(self) -> ResourceResult
|
||||||
Read the HTTP content.
|
Read the HTTP content.
|
||||||
|
|
||||||
|
|
||||||
### `DirectoryResource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DirectoryResource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A resource that lists files in a directory.
|
A resource that lists files in a directory.
|
||||||
|
|
@ -106,7 +106,7 @@ A resource that lists files in a directory.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `validate_absolute_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_absolute_path` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_absolute_path(cls, path: Path) -> Path
|
validate_absolute_path(cls, path: Path) -> Path
|
||||||
|
|
@ -115,7 +115,7 @@ validate_absolute_path(cls, path: Path) -> Path
|
||||||
Ensure path is absolute.
|
Ensure path is absolute.
|
||||||
|
|
||||||
|
|
||||||
#### `list_files` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L144" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_files` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L144" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_files(self) -> list[Path]
|
list_files(self) -> list[Path]
|
||||||
|
|
@ -124,7 +124,7 @@ list_files(self) -> list[Path]
|
||||||
List files in the directory.
|
List files in the directory.
|
||||||
|
|
||||||
|
|
||||||
#### `read` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/resources/types.py#L160" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/resources/types.py#L160" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read(self) -> ResourceResult
|
read(self) -> ResourceResult
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ UI metadata for clients that support interactive app rendering.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `app_config_to_meta_dict` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/apps.py#L115" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `app_config_to_meta_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/apps.py#L115" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
app_config_to_meta_dict(app: AppConfig | dict[str, Any]) -> dict[str, Any]
|
app_config_to_meta_dict(app: AppConfig | dict[str, Any]) -> dict[str, Any]
|
||||||
|
|
@ -25,7 +25,7 @@ app_config_to_meta_dict(app: AppConfig | dict[str, Any]) -> dict[str, Any]
|
||||||
Convert an AppConfig or dict to the wire-format dict for ``meta["ui"]``.
|
Convert an AppConfig or dict to the wire-format dict for ``meta["ui"]``.
|
||||||
|
|
||||||
|
|
||||||
### `resolve_ui_mime_type` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/apps.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resolve_ui_mime_type` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/apps.py#L122" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resolve_ui_mime_type(uri: str, explicit_mime_type: str | None) -> str | None
|
resolve_ui_mime_type(uri: str, explicit_mime_type: str | None) -> str | None
|
||||||
|
|
@ -49,7 +49,7 @@ the standalone @resource decorator, or resource templates).
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ResourceCSP` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/apps.py#L18" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourceCSP` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/apps.py#L18" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Content Security Policy for MCP App resources.
|
Content Security Policy for MCP App resources.
|
||||||
|
|
@ -59,7 +59,7 @@ load resources from. Hosts use these declarations to build the
|
||||||
``Content-Security-Policy`` header for the sandboxed iframe.
|
``Content-Security-Policy`` header for the sandboxed iframe.
|
||||||
|
|
||||||
|
|
||||||
### `ResourcePermissions` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/apps.py#L50" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResourcePermissions` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/apps.py#L50" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Iframe sandbox permissions for MCP App resources.
|
Iframe sandbox permissions for MCP App resources.
|
||||||
|
|
@ -70,7 +70,7 @@ iframe. Hosts MAY honour these; apps should use JS feature detection
|
||||||
as a fallback.
|
as a fallback.
|
||||||
|
|
||||||
|
|
||||||
### `AppConfig` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/apps.py#L77" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AppConfig` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/apps.py#L77" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration for MCP App tools and resources.
|
Configuration for MCP App tools and resources.
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ sidebarTitle: auth
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `AccessToken` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L54" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AccessToken` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L54" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
AccessToken that includes all JWT claims.
|
AccessToken that includes all JWT claims.
|
||||||
|
|
||||||
|
|
||||||
### `TokenHandler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L60" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TokenHandler` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L60" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
TokenHandler that returns MCP-compliant error responses.
|
TokenHandler that returns MCP-compliant error responses.
|
||||||
|
|
@ -33,7 +33,7 @@ This handler transforms responses to be compliant with both OAuth 2.1 and MCP sp
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `handle` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L76" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `handle` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L76" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
handle(self, request: Any)
|
handle(self, request: Any)
|
||||||
|
|
@ -42,7 +42,7 @@ handle(self, request: Any)
|
||||||
Wrap SDK handle() and transform auth error responses.
|
Wrap SDK handle() and transform auth error responses.
|
||||||
|
|
||||||
|
|
||||||
### `PrivateKeyJWTClientAuthenticator` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L126" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `PrivateKeyJWTClientAuthenticator` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L126" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Client authenticator with private_key_jwt support for CIMD clients.
|
Client authenticator with private_key_jwt support for CIMD clients.
|
||||||
|
|
@ -59,7 +59,7 @@ The authenticator:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `authenticate_request` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L156" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `authenticate_request` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L156" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
authenticate_request(self, request: Request) -> OAuthClientInformationFull
|
authenticate_request(self, request: Request) -> OAuthClientInformationFull
|
||||||
|
|
@ -72,7 +72,7 @@ Delegates to SDK for client_secret_basic (Authorization header) and
|
||||||
client_secret_post (form body) authentication.
|
client_secret_post (form body) authentication.
|
||||||
|
|
||||||
|
|
||||||
### `AuthProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L207" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AuthProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L207" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Base class for all FastMCP authentication providers.
|
Base class for all FastMCP authentication providers.
|
||||||
|
|
@ -85,7 +85,7 @@ custom authentication routes.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L236" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L236" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -102,7 +102,7 @@ All auth providers must implement token verification.
|
||||||
- AccessToken object if valid, None if invalid or expired
|
- AccessToken object if valid, None if invalid or expired
|
||||||
|
|
||||||
|
|
||||||
#### `set_mcp_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L249" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_mcp_path` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L249" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_mcp_path(self, mcp_path: str | None) -> None
|
set_mcp_path(self, mcp_path: str | None) -> None
|
||||||
|
|
@ -119,7 +119,7 @@ MCP endpoint path.
|
||||||
- `mcp_path`: The path where the MCP endpoint is mounted (e.g., "/mcp")
|
- `mcp_path`: The path where the MCP endpoint is mounted (e.g., "/mcp")
|
||||||
|
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L263" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L263" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
@ -143,7 +143,7 @@ provider does not create the actual MCP endpoint route.
|
||||||
- List of all routes for this provider (excluding the MCP endpoint itself)
|
- List of all routes for this provider (excluding the MCP endpoint itself)
|
||||||
|
|
||||||
|
|
||||||
#### `get_well_known_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L286" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_well_known_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L286" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_well_known_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_well_known_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
@ -171,7 +171,7 @@ This is used to construct path-scoped well-known URLs.
|
||||||
- List of well-known discovery routes (typically mounted at root level)
|
- List of well-known discovery routes (typically mounted at root level)
|
||||||
|
|
||||||
|
|
||||||
#### `get_middleware` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L318" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_middleware` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L318" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_middleware(self) -> list
|
get_middleware(self) -> list
|
||||||
|
|
@ -183,7 +183,7 @@ Get HTTP application-level middleware for this auth provider.
|
||||||
- List of Starlette Middleware instances to apply to the HTTP app
|
- List of Starlette Middleware instances to apply to the HTTP app
|
||||||
|
|
||||||
|
|
||||||
### `TokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L352" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L352" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Base class for token verifiers (Resource Servers).
|
Base class for token verifiers (Resource Servers).
|
||||||
|
|
@ -194,7 +194,7 @@ Token verifiers typically don't provide authentication routes by default.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `scopes_supported` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `scopes_supported` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
scopes_supported(self) -> list[str]
|
scopes_supported(self) -> list[str]
|
||||||
|
|
@ -208,7 +208,7 @@ where tokens contain short-form scopes but clients request full URI
|
||||||
scopes).
|
scopes).
|
||||||
|
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L384" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L384" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -217,7 +217,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify a bearer token and return access info if valid.
|
Verify a bearer token and return access info if valid.
|
||||||
|
|
||||||
|
|
||||||
### `RemoteAuthProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L389" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `RemoteAuthProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L389" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Authentication provider for resource servers that verify tokens from known authorization servers.
|
Authentication provider for resource servers that verify tokens from known authorization servers.
|
||||||
|
|
@ -234,7 +234,7 @@ the authorization servers that issue valid tokens.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L436" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L436" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -243,7 +243,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify token using the configured token verifier.
|
Verify token using the configured token verifier.
|
||||||
|
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L440" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L440" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
@ -254,7 +254,7 @@ Get routes for this provider.
|
||||||
Creates protected resource metadata routes (RFC 9728).
|
Creates protected resource metadata routes (RFC 9728).
|
||||||
|
|
||||||
|
|
||||||
### `OAuthProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L472" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OAuthProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L472" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OAuth Authorization Server provider.
|
OAuth Authorization Server provider.
|
||||||
|
|
@ -265,7 +265,7 @@ authorization flows, token issuance, and token verification.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L535" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L535" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -283,7 +283,7 @@ to our existing load_access_token method.
|
||||||
- AccessToken object if valid, None if invalid or expired
|
- AccessToken object if valid, None if invalid or expired
|
||||||
|
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L550" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L550" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
@ -299,7 +299,7 @@ This method creates the full set of OAuth routes including:
|
||||||
- List of OAuth routes
|
- List of OAuth routes
|
||||||
|
|
||||||
|
|
||||||
#### `get_well_known_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L629" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_well_known_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/auth.py#L629" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_well_known_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_well_known_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ Example:
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `require_scopes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L78" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `require_scopes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L78" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
require_scopes(*scopes: str) -> AuthCheck
|
require_scopes(*scopes: str) -> AuthCheck
|
||||||
|
|
@ -52,7 +52,7 @@ in the token (AND logic).
|
||||||
- `*scopes`: One or more scope strings that must all be present.
|
- `*scopes`: One or more scope strings that must all be present.
|
||||||
|
|
||||||
|
|
||||||
### `restrict_tag` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L106" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `restrict_tag` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L106" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
restrict_tag(tag: str) -> AuthCheck
|
restrict_tag(tag: str) -> AuthCheck
|
||||||
|
|
@ -69,7 +69,7 @@ required scopes. If the component doesn't have the tag, access is allowed.
|
||||||
- `scopes`: List of scopes required when the tag is present.
|
- `scopes`: List of scopes required when the tag is present.
|
||||||
|
|
||||||
|
|
||||||
### `run_auth_checks` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L134" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `run_auth_checks` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L134" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
run_auth_checks(checks: AuthCheck | list[AuthCheck], ctx: AuthContext) -> bool
|
run_auth_checks(checks: AuthCheck | list[AuthCheck], ctx: AuthContext) -> bool
|
||||||
|
|
@ -101,7 +101,7 @@ Each check can be sync (returns bool) or async (returns Awaitable[bool]).
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `AuthContext` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L48" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AuthContext` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L48" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Context passed to auth check callables.
|
Context passed to auth check callables.
|
||||||
|
|
@ -117,7 +117,7 @@ access to the current authentication token and the component being accessed.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `tool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `tool` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/authorization.py#L64" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
tool(self) -> Tool | None
|
tool(self) -> Tool | None
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ This module provides:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `CIMDDocument` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CIMDDocument` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L45" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
CIMD document per draft-parecki-oauth-client-id-metadata-document.
|
CIMD document per draft-parecki-oauth-client-id-metadata-document.
|
||||||
|
|
@ -41,7 +41,7 @@ redirect_uris is required and must contain at least one entry.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `validate_auth_method` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_auth_method` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L125" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_auth_method(cls, v: str) -> str
|
validate_auth_method(cls, v: str) -> str
|
||||||
|
|
@ -50,7 +50,7 @@ validate_auth_method(cls, v: str) -> str
|
||||||
Ensure no shared-secret auth methods are used.
|
Ensure no shared-secret auth methods are used.
|
||||||
|
|
||||||
|
|
||||||
#### `validate_redirect_uris` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L137" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_redirect_uris` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L137" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_redirect_uris(cls, v: list[str]) -> list[str]
|
validate_redirect_uris(cls, v: list[str]) -> list[str]
|
||||||
|
|
@ -59,19 +59,19 @@ validate_redirect_uris(cls, v: list[str]) -> list[str]
|
||||||
Ensure redirect_uris is non-empty and each entry is a valid URI.
|
Ensure redirect_uris is non-empty and each entry is a valid URI.
|
||||||
|
|
||||||
|
|
||||||
### `CIMDValidationError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L154" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CIMDValidationError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L154" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Raised when CIMD document validation fails.
|
Raised when CIMD document validation fails.
|
||||||
|
|
||||||
|
|
||||||
### `CIMDFetchError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L158" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CIMDFetchError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L158" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Raised when CIMD document fetching fails.
|
Raised when CIMD document fetching fails.
|
||||||
|
|
||||||
|
|
||||||
### `CIMDFetcher` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L186" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CIMDFetcher` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L186" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Fetch and validate CIMD documents with SSRF protection.
|
Fetch and validate CIMD documents with SSRF protection.
|
||||||
|
|
@ -84,7 +84,7 @@ a TTL fallback when response headers do not define caching behavior.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `is_cimd_client_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L270" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `is_cimd_client_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L270" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_cimd_client_id(self, client_id: str) -> bool
|
is_cimd_client_id(self, client_id: str) -> bool
|
||||||
|
|
@ -95,7 +95,7 @@ Check if a client_id looks like a CIMD URL.
|
||||||
CIMD URLs must be HTTPS with a host and non-root path.
|
CIMD URLs must be HTTPS with a host and non-root path.
|
||||||
|
|
||||||
|
|
||||||
#### `fetch` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `fetch` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
fetch(self, client_id_url: str) -> CIMDDocument
|
fetch(self, client_id_url: str) -> CIMDDocument
|
||||||
|
|
@ -121,7 +121,7 @@ Uses ssrf_safe_fetch_response for the HTTP layer, which provides:
|
||||||
- `CIMDFetchError`: If document cannot be fetched
|
- `CIMDFetchError`: If document cannot be fetched
|
||||||
|
|
||||||
|
|
||||||
#### `validate_redirect_uri` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L422" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_redirect_uri` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L422" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_redirect_uri(self, doc: CIMDDocument, redirect_uri: str) -> bool
|
validate_redirect_uri(self, doc: CIMDDocument, redirect_uri: str) -> bool
|
||||||
|
|
@ -137,7 +137,7 @@ Validate that a redirect_uri is allowed by the CIMD document.
|
||||||
- True if valid, False otherwise
|
- True if valid, False otherwise
|
||||||
|
|
||||||
|
|
||||||
### `CIMDAssertionValidator` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L452" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CIMDAssertionValidator` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L452" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Validates JWT assertions for private_key_jwt CIMD clients.
|
Validates JWT assertions for private_key_jwt CIMD clients.
|
||||||
|
|
@ -153,7 +153,7 @@ JTI replay protection uses TTL-based caching to ensure proper security:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `validate_assertion` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L495" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_assertion` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L495" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_assertion(self, assertion: str, client_id: str, token_endpoint: str, cimd_doc: CIMDDocument) -> bool
|
validate_assertion(self, assertion: str, client_id: str, token_endpoint: str, cimd_doc: CIMDDocument) -> bool
|
||||||
|
|
@ -174,7 +174,7 @@ Validate JWT assertion from client.
|
||||||
- `ValueError`: If validation fails
|
- `ValueError`: If validation fails
|
||||||
|
|
||||||
|
|
||||||
### `CIMDClientManager` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L677" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CIMDClientManager` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L677" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Manages all CIMD client operations for OAuth proxy.
|
Manages all CIMD client operations for OAuth proxy.
|
||||||
|
|
@ -191,7 +191,7 @@ single, focused manager class.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `is_cimd_client_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L711" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `is_cimd_client_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L711" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_cimd_client_id(self, client_id: str) -> bool
|
is_cimd_client_id(self, client_id: str) -> bool
|
||||||
|
|
@ -206,7 +206,7 @@ Check if client_id is a CIMD URL.
|
||||||
- True if client_id is an HTTPS URL (CIMD format)
|
- True if client_id is an HTTPS URL (CIMD format)
|
||||||
|
|
||||||
|
|
||||||
#### `get_client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L722" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_client` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L722" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_client(self, client_id_url: str)
|
get_client(self, client_id_url: str)
|
||||||
|
|
@ -221,7 +221,7 @@ Fetch CIMD document and create synthetic OAuth client.
|
||||||
- OAuthProxyClient with CIMD document attached, or None if fetch fails
|
- OAuthProxyClient with CIMD document attached, or None if fetch fails
|
||||||
|
|
||||||
|
|
||||||
#### `validate_private_key_jwt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L771" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_private_key_jwt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/cimd.py#L771" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_private_key_jwt(self, assertion: str, client, token_endpoint: str) -> bool
|
validate_private_key_jwt(self, assertion: str, client, token_endpoint: str) -> bool
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ This maintains proper OAuth 2.0 token audience boundaries.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `derive_jwt_key` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `derive_jwt_key` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
derive_jwt_key() -> bytes
|
derive_jwt_key() -> bytes
|
||||||
|
|
@ -27,7 +27,7 @@ Derive JWT signing key from a high-entropy or low-entropy key material and serve
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `JWTIssuer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L74" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `JWTIssuer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L74" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Issues and validates FastMCP-signed JWT tokens using HS256.
|
Issues and validates FastMCP-signed JWT tokens using HS256.
|
||||||
|
|
@ -39,7 +39,7 @@ a key derived from the upstream client secret.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `issue_access_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `issue_access_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
issue_access_token(self, client_id: str, scopes: list[str], jti: str, expires_in: int = 3600, upstream_claims: dict[str, Any] | None = None) -> str
|
issue_access_token(self, client_id: str, scopes: list[str], jti: str, expires_in: int = 3600, upstream_claims: dict[str, Any] | None = None) -> str
|
||||||
|
|
@ -62,7 +62,7 @@ which contains actual user identity and authorization data.
|
||||||
- Signed JWT token
|
- Signed JWT token
|
||||||
|
|
||||||
|
|
||||||
#### `issue_refresh_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L152" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `issue_refresh_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L152" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
issue_refresh_token(self, client_id: str, scopes: list[str], jti: str, expires_in: int, upstream_claims: dict[str, Any] | None = None) -> str
|
issue_refresh_token(self, client_id: str, scopes: list[str], jti: str, expires_in: int, upstream_claims: dict[str, Any] | None = None) -> str
|
||||||
|
|
@ -85,7 +85,7 @@ token which contains actual user identity and authorization data.
|
||||||
- Signed JWT token
|
- Signed JWT token
|
||||||
|
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/jwt_issuer.py#L205" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> dict[str, Any]
|
verify_token(self, token: str) -> dict[str, Any]
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ authentication issues.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `RequireAuthMiddleware` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/middleware.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `RequireAuthMiddleware` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/middleware.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Enhanced authentication middleware with detailed error messages.
|
Enhanced authentication middleware with detailed error messages.
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ cookie management, and consent page rendering.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ConsentMixin` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/consent.py#L35" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ConsentMixin` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/consent.py#L35" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Mixin class providing consent management functionality for OAuthProxy.
|
Mixin class providing consent management functionality for OAuthProxy.
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ This module contains all Pydantic models and constants used by the OAuth proxy.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `OAuthTransaction` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OAuthTransaction` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OAuth transaction state for consent flow.
|
OAuth transaction state for consent flow.
|
||||||
|
|
@ -22,7 +22,7 @@ Stored server-side to track active authorization flows with client context.
|
||||||
Includes CSRF tokens for consent protection per MCP security best practices.
|
Includes CSRF tokens for consent protection per MCP security best practices.
|
||||||
|
|
||||||
|
|
||||||
### `ClientCode` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L62" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ClientCode` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L62" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Client authorization code with PKCE and upstream tokens.
|
Client authorization code with PKCE and upstream tokens.
|
||||||
|
|
@ -31,7 +31,7 @@ Stored server-side after upstream IdP callback. Contains the upstream
|
||||||
tokens bound to the client's PKCE challenge for secure token exchange.
|
tokens bound to the client's PKCE challenge for secure token exchange.
|
||||||
|
|
||||||
|
|
||||||
### `UpstreamTokenSet` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `UpstreamTokenSet` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L80" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Stored upstream OAuth tokens from identity provider.
|
Stored upstream OAuth tokens from identity provider.
|
||||||
|
|
@ -41,7 +41,7 @@ and stored in plaintext within this model. Encryption is handled transparently
|
||||||
at the storage layer via FernetEncryptionWrapper. Tokens are never exposed to MCP clients.
|
at the storage layer via FernetEncryptionWrapper. Tokens are never exposed to MCP clients.
|
||||||
|
|
||||||
|
|
||||||
### `JTIMapping` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L102" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `JTIMapping` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L102" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Maps FastMCP token JTI to upstream token ID.
|
Maps FastMCP token JTI to upstream token ID.
|
||||||
|
|
@ -50,7 +50,7 @@ This allows stateless JWT validation while still being able to look up
|
||||||
the corresponding upstream token when tools need to access upstream APIs.
|
the corresponding upstream token when tools need to access upstream APIs.
|
||||||
|
|
||||||
|
|
||||||
### `RefreshTokenMetadata` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L114" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `RefreshTokenMetadata` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L114" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Metadata for a refresh token, stored keyed by token hash.
|
Metadata for a refresh token, stored keyed by token hash.
|
||||||
|
|
@ -59,7 +59,7 @@ We store only metadata (not the token itself) for security - if storage
|
||||||
is compromised, attackers get hashes they can't reverse into usable tokens.
|
is compromised, attackers get hashes they can't reverse into usable tokens.
|
||||||
|
|
||||||
|
|
||||||
### `ProxyDCRClient` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L136" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ProxyDCRClient` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L136" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Client for DCR proxy with configurable redirect URI validation.
|
Client for DCR proxy with configurable redirect URI validation.
|
||||||
|
|
@ -89,7 +89,7 @@ arise from accepting arbitrary redirect URIs.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `validate_redirect_uri` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L167" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `validate_redirect_uri` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/models.py#L167" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_redirect_uri(self, redirect_uri: AnyUrl | None) -> AnyUrl
|
validate_redirect_uri(self, redirect_uri: AnyUrl | None) -> AnyUrl
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ production use with enterprise identity providers.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `OAuthProxy` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OAuthProxy` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OAuth provider that presents a DCR-compliant interface while proxying to non-DCR IDPs.
|
OAuth provider that presents a DCR-compliant interface while proxying to non-DCR IDPs.
|
||||||
|
|
@ -140,7 +140,7 @@ Handles provider-specific requirements:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `set_mcp_path` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L540" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_mcp_path` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L540" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_mcp_path(self, mcp_path: str | None) -> None
|
set_mcp_path(self, mcp_path: str | None) -> None
|
||||||
|
|
@ -157,7 +157,7 @@ this specific MCP endpoint.
|
||||||
- `mcp_path`: The path where the MCP endpoint is mounted (e.g., "/mcp")
|
- `mcp_path`: The path where the MCP endpoint is mounted (e.g., "/mcp")
|
||||||
|
|
||||||
|
|
||||||
#### `jwt_issuer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L564" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `jwt_issuer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L564" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
jwt_issuer(self) -> JWTIssuer
|
jwt_issuer(self) -> JWTIssuer
|
||||||
|
|
@ -169,7 +169,7 @@ The JWT issuer is created when set_mcp_path() is called (via get_routes()).
|
||||||
This property ensures a clear error if used before initialization.
|
This property ensures a clear error if used before initialization.
|
||||||
|
|
||||||
|
|
||||||
#### `get_client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L601" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_client` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L601" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_client(self, client_id: str) -> OAuthClientInformationFull | None
|
get_client(self, client_id: str) -> OAuthClientInformationFull | None
|
||||||
|
|
@ -182,7 +182,7 @@ For unregistered clients, returns None (which will raise an error in the SDK).
|
||||||
CIMD clients (URL-based client IDs) are looked up and cached automatically.
|
CIMD clients (URL-based client IDs) are looked up and cached automatically.
|
||||||
|
|
||||||
|
|
||||||
#### `register_client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L645" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_client` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L645" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_client(self, client_info: OAuthClientInformationFull) -> None
|
register_client(self, client_info: OAuthClientInformationFull) -> None
|
||||||
|
|
@ -196,7 +196,7 @@ redirect URI will likely be localhost or unknown to the proxied IDP. The
|
||||||
proxied IDP only knows about this server's fixed redirect URI.
|
proxied IDP only knows about this server's fixed redirect URI.
|
||||||
|
|
||||||
|
|
||||||
#### `authorize` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L698" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `authorize` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L698" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
authorize(self, client: OAuthClientInformationFull, params: AuthorizationParams) -> str
|
authorize(self, client: OAuthClientInformationFull, params: AuthorizationParams) -> str
|
||||||
|
|
@ -214,7 +214,7 @@ If consent is disabled (require_authorization_consent=False), skip the consent s
|
||||||
and redirect directly to the upstream IdP.
|
and redirect directly to the upstream IdP.
|
||||||
|
|
||||||
|
|
||||||
#### `load_authorization_code` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L817" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_authorization_code` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L817" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_authorization_code(self, client: OAuthClientInformationFull, authorization_code: str) -> AuthorizationCode | None
|
load_authorization_code(self, client: OAuthClientInformationFull, authorization_code: str) -> AuthorizationCode | None
|
||||||
|
|
@ -226,7 +226,7 @@ Look up our client code and return authorization code object
|
||||||
with PKCE challenge for validation.
|
with PKCE challenge for validation.
|
||||||
|
|
||||||
|
|
||||||
#### `exchange_authorization_code` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L865" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `exchange_authorization_code` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L865" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
exchange_authorization_code(self, client: OAuthClientInformationFull, authorization_code: AuthorizationCode) -> OAuthToken
|
exchange_authorization_code(self, client: OAuthClientInformationFull, authorization_code: AuthorizationCode) -> OAuthToken
|
||||||
|
|
@ -244,7 +244,7 @@ Implements the token factory pattern:
|
||||||
PKCE validation is handled by the MCP framework before this method is called.
|
PKCE validation is handled by the MCP framework before this method is called.
|
||||||
|
|
||||||
|
|
||||||
#### `load_refresh_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1111" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_refresh_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1111" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_refresh_token(self, client: OAuthClientInformationFull, refresh_token: str) -> RefreshToken | None
|
load_refresh_token(self, client: OAuthClientInformationFull, refresh_token: str) -> RefreshToken | None
|
||||||
|
|
@ -256,7 +256,7 @@ Looks up by token hash and reconstructs the RefreshToken object.
|
||||||
Validates that the token belongs to the requesting client.
|
Validates that the token belongs to the requesting client.
|
||||||
|
|
||||||
|
|
||||||
#### `exchange_refresh_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1140" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `exchange_refresh_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1140" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
exchange_refresh_token(self, client: OAuthClientInformationFull, refresh_token: RefreshToken, scopes: list[str]) -> OAuthToken
|
exchange_refresh_token(self, client: OAuthClientInformationFull, refresh_token: RefreshToken, scopes: list[str]) -> OAuthToken
|
||||||
|
|
@ -273,7 +273,7 @@ Implements two-tier refresh:
|
||||||
6. Keep same FastMCP refresh token (unless upstream rotates)
|
6. Keep same FastMCP refresh token (unless upstream rotates)
|
||||||
|
|
||||||
|
|
||||||
#### `load_access_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1370" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_access_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1370" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_access_token(self, token: str) -> AccessToken | None
|
load_access_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -292,7 +292,7 @@ The FastMCP JWT is a reference token - all authorization data comes
|
||||||
from validating the upstream token via the TokenVerifier.
|
from validating the upstream token via the TokenVerifier.
|
||||||
|
|
||||||
|
|
||||||
#### `revoke_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1429" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `revoke_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1429" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
revoke_token(self, token: AccessToken | RefreshToken) -> None
|
revoke_token(self, token: AccessToken | RefreshToken) -> None
|
||||||
|
|
@ -305,7 +305,7 @@ For all tokens, attempts upstream revocation if endpoint is configured.
|
||||||
Access token JTI mappings expire via TTL.
|
Access token JTI mappings expire via TTL.
|
||||||
|
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1462" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/proxy.py#L1462" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ This module contains HTML generation functions for consent and error pages.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `create_consent_html` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/ui.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_consent_html` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/ui.py#L22" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_consent_html(client_id: str, redirect_uri: str, scopes: list[str], txn_id: str, csrf_token: str, client_name: str | None = None, title: str = 'Application Access Request', server_name: str | None = None, server_icon_url: str | None = None, server_website_url: str | None = None, client_website_url: str | None = None, csp_policy: str | None = None, is_cimd_client: bool = False, cimd_domain: str | None = None) -> str
|
create_consent_html(client_id: str, redirect_uri: str, scopes: list[str], txn_id: str, csrf_token: str, client_name: str | None = None, title: str = 'Application Access Request', server_name: str | None = None, server_icon_url: str | None = None, server_website_url: str | None = None, client_website_url: str | None = None, csp_policy: str | None = None, is_cimd_client: bool = False, cimd_domain: str | None = None) -> str
|
||||||
|
|
@ -29,7 +29,7 @@ If empty string "", disables CSP entirely (no meta tag is rendered).
|
||||||
If a non-empty string, uses that as the CSP policy value.
|
If a non-empty string, uses that as the CSP policy value.
|
||||||
|
|
||||||
|
|
||||||
### `create_error_html` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/ui.py#L224" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_error_html` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oauth_proxy/ui.py#L224" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_error_html(error_title: str, error_message: str, error_details: dict[str, str] | None = None, server_name: str | None = None, server_icon_url: str | None = None) -> str
|
create_error_html(error_title: str, error_message: str, error_details: dict[str, str] | None = None, server_name: str | None = None, server_icon_url: str | None = None) -> str
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ This implementation is based on:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `OIDCConfiguration` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L27" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OIDCConfiguration` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L27" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OIDC Configuration.
|
OIDC Configuration.
|
||||||
|
|
@ -27,7 +27,7 @@ OIDC Configuration.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_oidc_configuration` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L142" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_oidc_configuration` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L142" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_oidc_configuration(cls, config_url: AnyHttpUrl) -> Self
|
get_oidc_configuration(cls, config_url: AnyHttpUrl) -> Self
|
||||||
|
|
@ -41,7 +41,7 @@ Get the OIDC configuration for the specified config URL.
|
||||||
- `timeout_seconds`: HTTP request timeout in seconds
|
- `timeout_seconds`: HTTP request timeout in seconds
|
||||||
|
|
||||||
|
|
||||||
### `OIDCProxy` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OIDCProxy` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OAuth provider that wraps OAuthProxy to provide configuration via an OIDC configuration URL.
|
OAuth provider that wraps OAuthProxy to provide configuration via an OIDC configuration URL.
|
||||||
|
|
@ -52,7 +52,7 @@ that is OIDC compliant.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_oidc_configuration` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L386" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_oidc_configuration` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L386" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_oidc_configuration(self, config_url: AnyHttpUrl, strict: bool | None, timeout_seconds: int | None) -> OIDCConfiguration
|
get_oidc_configuration(self, config_url: AnyHttpUrl, strict: bool | None, timeout_seconds: int | None) -> OIDCConfiguration
|
||||||
|
|
@ -66,7 +66,7 @@ Gets the OIDC configuration for the specified configuration URL.
|
||||||
- `timeout_seconds`: HTTP request timeout in seconds
|
- `timeout_seconds`: HTTP request timeout in seconds
|
||||||
|
|
||||||
|
|
||||||
#### `get_token_verifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L403" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_token_verifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/oidc_proxy.py#L403" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_token_verifier(self) -> TokenVerifier
|
get_token_verifier(self) -> TokenVerifier
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `Auth0Provider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/auth0.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Auth0Provider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/auth0.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
An Auth0 provider implementation for FastMCP.
|
An Auth0 provider implementation for FastMCP.
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `AWSCognitoTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AWSCognitoTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Token verifier that filters claims to Cognito-specific subset.
|
Token verifier that filters claims to Cognito-specific subset.
|
||||||
|
|
@ -39,7 +39,7 @@ Token verifier that filters claims to Cognito-specific subset.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -48,7 +48,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify token and filter claims to Cognito-specific subset.
|
Verify token and filter claims to Cognito-specific subset.
|
||||||
|
|
||||||
|
|
||||||
### `AWSCognitoProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L66" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AWSCognitoProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L66" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Complete AWS Cognito OAuth provider for FastMCP.
|
Complete AWS Cognito OAuth provider for FastMCP.
|
||||||
|
|
@ -66,7 +66,7 @@ Features:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_token_verifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_token_verifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/aws.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_token_verifier(self) -> TokenVerifier
|
get_token_verifier(self) -> TokenVerifier
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ using the OAuth Proxy pattern for non-DCR OAuth flows.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `EntraOBOToken` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L658" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `EntraOBOToken` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L658" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
EntraOBOToken(scopes: list[str]) -> str
|
EntraOBOToken(scopes: list[str]) -> str
|
||||||
|
|
@ -43,7 +43,7 @@ or OBO exchange fails
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `AzureProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AzureProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Azure (Microsoft Entra) OAuth provider for FastMCP.
|
Azure (Microsoft Entra) OAuth provider for FastMCP.
|
||||||
|
|
@ -78,7 +78,7 @@ Setup:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `authorize` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L235" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `authorize` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L235" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
authorize(self, client: OAuthClientInformationFull, params: AuthorizationParams) -> str
|
authorize(self, client: OAuthClientInformationFull, params: AuthorizationParams) -> str
|
||||||
|
|
@ -98,7 +98,7 @@ scopes to determine the resource/audience instead of a separate parameter.
|
||||||
- Authorization URL to redirect the user to Azure AD
|
- Authorization URL to redirect the user to Azure AD
|
||||||
|
|
||||||
|
|
||||||
#### `create_obo_credential` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `create_obo_credential` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_obo_credential(self, user_assertion: str) -> OnBehalfOfCredential
|
create_obo_credential(self, user_assertion: str) -> OnBehalfOfCredential
|
||||||
|
|
@ -120,7 +120,7 @@ user's token for downstream API tokens.
|
||||||
- `ImportError`: If azure-identity is not installed (requires fastmcp[azure]).
|
- `ImportError`: If azure-identity is not installed (requires fastmcp[azure]).
|
||||||
|
|
||||||
|
|
||||||
### `AzureJWTVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L489" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AzureJWTVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L489" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
JWT verifier pre-configured for Azure AD / Microsoft Entra ID.
|
JWT verifier pre-configured for Azure AD / Microsoft Entra ID.
|
||||||
|
|
@ -157,7 +157,7 @@ Example::
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `scopes_supported` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L569" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `scopes_supported` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/azure.py#L569" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
scopes_supported(self) -> list[str]
|
scopes_supported(self) -> list[str]
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DebugTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/debug.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DebugTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/debug.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Token verifier with custom validation logic.
|
Token verifier with custom validation logic.
|
||||||
|
|
@ -54,7 +54,7 @@ environments or when you understand the security implications.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/debug.py#L77" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/debug.py#L77" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ for seamless MCP client authentication.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DescopeProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/descope.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DescopeProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/descope.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Descope metadata provider for DCR (Dynamic Client Registration).
|
Descope metadata provider for DCR (Dynamic Client Registration).
|
||||||
|
|
@ -43,7 +43,7 @@ https://docs.descope.com/identity-federation/inbound-apps/creating-inbound-apps#
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/descope.py#L154" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/descope.py#L154" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DiscordTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/discord.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DiscordTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/discord.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Token verifier for Discord OAuth tokens.
|
Token verifier for Discord OAuth tokens.
|
||||||
|
|
@ -40,7 +40,7 @@ by calling Discord's tokeninfo API to check if they're valid and get user info.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/discord.py#L62" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/discord.py#L62" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -49,7 +49,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify Discord OAuth token by calling Discord's tokeninfo API.
|
Verify Discord OAuth token by calling Discord's tokeninfo API.
|
||||||
|
|
||||||
|
|
||||||
### `DiscordProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/discord.py#L144" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DiscordProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/discord.py#L144" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Complete Discord OAuth provider for FastMCP.
|
Complete Discord OAuth provider for FastMCP.
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `GitHubTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/github.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `GitHubTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/github.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Token verifier for GitHub OAuth tokens.
|
Token verifier for GitHub OAuth tokens.
|
||||||
|
|
@ -40,7 +40,7 @@ by calling GitHub's API to check if they're valid and get user info.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/github.py#L59" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/github.py#L59" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -49,7 +49,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify GitHub OAuth token by calling GitHub API.
|
Verify GitHub OAuth token by calling GitHub API.
|
||||||
|
|
||||||
|
|
||||||
### `GitHubProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/github.py#L142" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `GitHubProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/github.py#L142" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Complete GitHub OAuth provider for FastMCP.
|
Complete GitHub OAuth provider for FastMCP.
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `GoogleTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/google.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `GoogleTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/google.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Token verifier for Google OAuth tokens.
|
Token verifier for Google OAuth tokens.
|
||||||
|
|
@ -40,7 +40,7 @@ by calling Google's tokeninfo API to check if they're valid and get user info.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/google.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/google.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -49,7 +49,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify Google OAuth token by calling Google's tokeninfo API.
|
Verify Google OAuth token by calling Google's tokeninfo API.
|
||||||
|
|
||||||
|
|
||||||
### `GoogleProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/google.py#L158" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `GoogleProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/google.py#L158" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Complete Google OAuth provider for FastMCP.
|
Complete Google OAuth provider for FastMCP.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: in_memory
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `InMemoryOAuthProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `InMemoryOAuthProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
An in-memory OAuth provider for testing purposes.
|
An in-memory OAuth provider for testing purposes.
|
||||||
|
|
@ -16,19 +16,19 @@ It simulates the OAuth 2.1 flow locally without external calls.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L65" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_client` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L65" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_client(self, client_id: str) -> OAuthClientInformationFull | None
|
get_client(self, client_id: str) -> OAuthClientInformationFull | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `register_client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `register_client` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_client(self, client_info: OAuthClientInformationFull) -> None
|
register_client(self, client_info: OAuthClientInformationFull) -> None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `authorize` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `authorize` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
authorize(self, client: OAuthClientInformationFull, params: AuthorizationParams) -> str
|
authorize(self, client: OAuthClientInformationFull, params: AuthorizationParams) -> str
|
||||||
|
|
@ -38,37 +38,37 @@ Simulates user authorization and generates an authorization code.
|
||||||
Returns a redirect URI with the code and state.
|
Returns a redirect URI with the code and state.
|
||||||
|
|
||||||
|
|
||||||
#### `load_authorization_code` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_authorization_code` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_authorization_code(self, client: OAuthClientInformationFull, authorization_code: str) -> AuthorizationCode | None
|
load_authorization_code(self, client: OAuthClientInformationFull, authorization_code: str) -> AuthorizationCode | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `exchange_authorization_code` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L162" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `exchange_authorization_code` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L162" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
exchange_authorization_code(self, client: OAuthClientInformationFull, authorization_code: AuthorizationCode) -> OAuthToken
|
exchange_authorization_code(self, client: OAuthClientInformationFull, authorization_code: AuthorizationCode) -> OAuthToken
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `load_refresh_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L215" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_refresh_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L215" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_refresh_token(self, client: OAuthClientInformationFull, refresh_token: str) -> RefreshToken | None
|
load_refresh_token(self, client: OAuthClientInformationFull, refresh_token: str) -> RefreshToken | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `exchange_refresh_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L230" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `exchange_refresh_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L230" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
exchange_refresh_token(self, client: OAuthClientInformationFull, refresh_token: RefreshToken, scopes: list[str]) -> OAuthToken
|
exchange_refresh_token(self, client: OAuthClientInformationFull, refresh_token: RefreshToken, scopes: list[str]) -> OAuthToken
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `load_access_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_access_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L287" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_access_token(self, token: str) -> AccessToken | None
|
load_access_token(self, token: str) -> AccessToken | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L298" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L298" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -86,7 +86,7 @@ to our existing load_access_token method.
|
||||||
- AccessToken object if valid, None if invalid or expired
|
- AccessToken object if valid, None if invalid or expired
|
||||||
|
|
||||||
|
|
||||||
#### `revoke_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L355" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `revoke_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/in_memory.py#L355" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
revoke_token(self, token: AccessToken | RefreshToken) -> None
|
revoke_token(self, token: AccessToken | RefreshToken) -> None
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `IntrospectionTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/introspection.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `IntrospectionTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/introspection.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
OAuth 2.0 Token Introspection verifier (RFC 7662).
|
OAuth 2.0 Token Introspection verifier (RFC 7662).
|
||||||
|
|
@ -55,7 +55,7 @@ Use this when:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/introspection.py#L154" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/introspection.py#L154" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
|
||||||
|
|
@ -10,19 +10,19 @@ TokenVerifier implementations for FastMCP.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `JWKData` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `JWKData` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
JSON Web Key data structure.
|
JSON Web Key data structure.
|
||||||
|
|
||||||
|
|
||||||
### `JWKSData` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `JWKSData` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L39" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
JSON Web Key Set data structure.
|
JSON Web Key Set data structure.
|
||||||
|
|
||||||
|
|
||||||
### `RSAKeyPair` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `RSAKeyPair` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
RSA key pair for JWT testing.
|
RSA key pair for JWT testing.
|
||||||
|
|
@ -30,7 +30,7 @@ RSA key pair for JWT testing.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `generate` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `generate` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate(cls) -> RSAKeyPair
|
generate(cls) -> RSAKeyPair
|
||||||
|
|
@ -42,7 +42,7 @@ Generate an RSA key pair for testing.
|
||||||
- Generated key pair
|
- Generated key pair
|
||||||
|
|
||||||
|
|
||||||
#### `create_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L88" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `create_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L88" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_token(self, subject: str = 'fastmcp-user', issuer: str = 'https://fastmcp.example.com', audience: str | list[str] | None = None, scopes: list[str] | None = None, expires_in_seconds: int = 3600, additional_claims: dict[str, Any] | None = None, kid: str | None = None) -> str
|
create_token(self, subject: str = 'fastmcp-user', issuer: str = 'https://fastmcp.example.com', audience: str | list[str] | None = None, scopes: list[str] | None = None, expires_in_seconds: int = 3600, additional_claims: dict[str, Any] | None = None, kid: str | None = None) -> str
|
||||||
|
|
@ -60,7 +60,7 @@ Generate a test JWT token for testing purposes.
|
||||||
- `kid`: Key ID to include in header
|
- `kid`: Key ID to include in header
|
||||||
|
|
||||||
|
|
||||||
### `JWTVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L141" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `JWTVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L141" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
JWT token verifier supporting both asymmetric (RSA/ECDSA) and symmetric (HMAC) algorithms.
|
JWT token verifier supporting both asymmetric (RSA/ECDSA) and symmetric (HMAC) algorithms.
|
||||||
|
|
@ -82,7 +82,7 @@ Use this when:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `load_access_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L353" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `load_access_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L353" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_access_token(self, token: str) -> AccessToken | None
|
load_access_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -97,7 +97,7 @@ Validate a JWT bearer token and return an AccessToken when the token is valid.
|
||||||
- AccessToken | None: An AccessToken populated from token claims if the token is valid; `None` if the token is expired, has an invalid signature or format, fails issuer/audience/scope validation, or any other validation error occurs.
|
- AccessToken | None: An AccessToken populated from token claims if the token is valid; `None` if the token is expired, has an invalid signature or format, fails issuer/audience/scope validation, or any other validation error occurs.
|
||||||
|
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L471" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L471" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -115,7 +115,7 @@ to our existing load_access_token method.
|
||||||
- AccessToken object if valid, None if invalid or expired
|
- AccessToken object if valid, None if invalid or expired
|
||||||
|
|
||||||
|
|
||||||
### `StaticTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L487" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StaticTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L487" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Simple static token verifier for testing and development.
|
Simple static token verifier for testing and development.
|
||||||
|
|
@ -136,7 +136,7 @@ WARNING: Never use this in production - tokens are stored in plain text!
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L521" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/jwt.py#L521" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `OCIProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/oci.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `OCIProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/oci.py#L90" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
An OCI IAM Domain provider implementation for FastMCP.
|
An OCI IAM Domain provider implementation for FastMCP.
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ authentication for seamless MCP client authentication.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ScalekitProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/scalekit.py#L23" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ScalekitProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/scalekit.py#L23" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Scalekit resource server provider for OAuth 2.1 authentication.
|
Scalekit resource server provider for OAuth 2.1 authentication.
|
||||||
|
|
@ -44,7 +44,7 @@ https://docs.scalekit.com/mcp/overview/
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/scalekit.py#L145" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/scalekit.py#L145" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ for seamless MCP client authentication.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `SupabaseProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/supabase.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SupabaseProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/supabase.py#L25" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Supabase metadata provider for DCR (Dynamic Client Registration).
|
Supabase metadata provider for DCR (Dynamic Client Registration).
|
||||||
|
|
@ -50,7 +50,7 @@ https://supabase.com/docs/guides/auth/jwts
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/supabase.py#L126" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/supabase.py#L126" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ Choose based on your WorkOS setup and authentication requirements.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `WorkOSTokenVerifier` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L28" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `WorkOSTokenVerifier` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L28" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Token verifier for WorkOS OAuth tokens.
|
Token verifier for WorkOS OAuth tokens.
|
||||||
|
|
@ -29,7 +29,7 @@ the /oauth2/userinfo endpoint to check validity and get user info.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `verify_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `verify_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
verify_token(self, token: str) -> AccessToken | None
|
verify_token(self, token: str) -> AccessToken | None
|
||||||
|
|
@ -38,7 +38,7 @@ verify_token(self, token: str) -> AccessToken | None
|
||||||
Verify WorkOS OAuth token by calling userinfo endpoint.
|
Verify WorkOS OAuth token by calling userinfo endpoint.
|
||||||
|
|
||||||
|
|
||||||
### `WorkOSProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `WorkOSProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Complete WorkOS OAuth provider for FastMCP.
|
Complete WorkOS OAuth provider for FastMCP.
|
||||||
|
|
@ -59,7 +59,7 @@ Setup Requirements:
|
||||||
4. Note your Client ID and Client Secret
|
4. Note your Client ID and Client Secret
|
||||||
|
|
||||||
|
|
||||||
### `AuthKitProvider` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L214" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AuthKitProvider` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L214" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
AuthKit metadata provider for DCR (Dynamic Client Registration).
|
AuthKit metadata provider for DCR (Dynamic Client Registration).
|
||||||
|
|
@ -85,7 +85,7 @@ https://workos.com/docs/authkit/mcp/integrating/token-verification
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_routes` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L301" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_routes` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/providers/workos.py#L301" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
get_routes(self, mcp_path: str | None = None) -> list[Route]
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ protecting against userinfo-based bypass attacks like http://localhost@evil.com.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `matches_allowed_pattern` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/redirect_validation.py#L121" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `matches_allowed_pattern` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/redirect_validation.py#L121" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
matches_allowed_pattern(uri: str, pattern: str) -> bool
|
matches_allowed_pattern(uri: str, pattern: str) -> bool
|
||||||
|
|
@ -43,7 +43,7 @@ naive string matching (e.g., http://localhost@evil.com).
|
||||||
- True if the URI matches the pattern
|
- True if the URI matches the pattern
|
||||||
|
|
||||||
|
|
||||||
### `validate_redirect_uri` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/redirect_validation.py#L175" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `validate_redirect_uri` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/redirect_validation.py#L175" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_redirect_uri(redirect_uri: str | AnyUrl | None, allowed_patterns: list[str] | None) -> bool
|
validate_redirect_uri(redirect_uri: str | AnyUrl | None, allowed_patterns: list[str] | None) -> bool
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ This module provides SSRF-protected HTTP fetching with:
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `format_ip_for_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `format_ip_for_url` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
format_ip_for_url(ip_str: str) -> str
|
format_ip_for_url(ip_str: str) -> str
|
||||||
|
|
@ -35,7 +35,7 @@ the port separator. For example: https://[2001:db8::1]:443/path
|
||||||
- IP string suitable for URL (IPv6 addresses are bracketed)
|
- IP string suitable for URL (IPv6 addresses are bracketed)
|
||||||
|
|
||||||
|
|
||||||
### `is_ip_allowed` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L55" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `is_ip_allowed` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L55" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_ip_allowed(ip_str: str) -> bool
|
is_ip_allowed(ip_str: str) -> bool
|
||||||
|
|
@ -60,7 +60,7 @@ Additionally blocks multicast addresses (not caught by is_global).
|
||||||
- True if the IP is allowed (public unicast internet), False if blocked
|
- True if the IP is allowed (public unicast internet), False if blocked
|
||||||
|
|
||||||
|
|
||||||
### `resolve_hostname` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L98" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resolve_hostname` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L98" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resolve_hostname(hostname: str, port: int = 443) -> list[str]
|
resolve_hostname(hostname: str, port: int = 443) -> list[str]
|
||||||
|
|
@ -80,7 +80,7 @@ Resolve hostname to IP addresses using DNS.
|
||||||
- `SSRFError`: If resolution fails
|
- `SSRFError`: If resolution fails
|
||||||
|
|
||||||
|
|
||||||
### `validate_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L147" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `validate_url` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L147" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_url(url: str, require_path: bool = False) -> ValidatedURL
|
validate_url(url: str, require_path: bool = False) -> ValidatedURL
|
||||||
|
|
@ -100,7 +100,7 @@ Validate URL for SSRF and resolve to IPs.
|
||||||
- `SSRFError`: If URL is invalid or resolves to blocked IPs
|
- `SSRFError`: If URL is invalid or resolves to blocked IPs
|
||||||
|
|
||||||
|
|
||||||
### `ssrf_safe_fetch` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L196" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ssrf_safe_fetch` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L196" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
ssrf_safe_fetch(url: str) -> bytes
|
ssrf_safe_fetch(url: str) -> bytes
|
||||||
|
|
@ -132,7 +132,7 @@ Security measures:
|
||||||
- `SSRFFetchError`: If fetch fails
|
- `SSRFFetchError`: If fetch fails
|
||||||
|
|
||||||
|
|
||||||
### `ssrf_safe_fetch_response` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L239" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ssrf_safe_fetch_response` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L239" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
ssrf_safe_fetch_response(url: str) -> SSRFFetchResponse
|
ssrf_safe_fetch_response(url: str) -> SSRFFetchResponse
|
||||||
|
|
@ -147,25 +147,25 @@ and status code, and supports conditional request headers.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `SSRFError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SSRFError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L47" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Raised when an SSRF protection check fails.
|
Raised when an SSRF protection check fails.
|
||||||
|
|
||||||
|
|
||||||
### `SSRFFetchError` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SSRFFetchError` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Raised when SSRF-safe fetch fails.
|
Raised when SSRF-safe fetch fails.
|
||||||
|
|
||||||
|
|
||||||
### `ValidatedURL` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L128" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ValidatedURL` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L128" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A URL that has been validated for SSRF with resolved IPs.
|
A URL that has been validated for SSRF with resolved IPs.
|
||||||
|
|
||||||
|
|
||||||
### `SSRFFetchResponse` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L139" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SSRFFetchResponse` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/auth/ssrf.py#L139" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Response payload from an SSRF-safe fetch.
|
Response payload from an SSRF-safe fetch.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: context
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `set_transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `set_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_transport(transport: TransportType) -> Token[TransportType | None]
|
set_transport(transport: TransportType) -> Token[TransportType | None]
|
||||||
|
|
@ -17,7 +17,7 @@ set_transport(transport: TransportType) -> Token[TransportType | None]
|
||||||
Set the current transport type. Returns token for reset.
|
Set the current transport type. Returns token for reset.
|
||||||
|
|
||||||
|
|
||||||
### `reset_transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `reset_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
reset_transport(token: Token[TransportType | None]) -> None
|
reset_transport(token: Token[TransportType | None]) -> None
|
||||||
|
|
@ -27,7 +27,7 @@ reset_transport(token: Token[TransportType | None]) -> None
|
||||||
Reset transport to previous value.
|
Reset transport to previous value.
|
||||||
|
|
||||||
|
|
||||||
### `set_context` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L124" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `set_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L124" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_context(context: Context) -> Generator[Context, None, None]
|
set_context(context: Context) -> Generator[Context, None, None]
|
||||||
|
|
@ -35,7 +35,7 @@ set_context(context: Context) -> Generator[Context, None, None]
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `LogData` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `LogData` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Data object for passing log arguments to client-side handlers.
|
Data object for passing log arguments to client-side handlers.
|
||||||
|
|
@ -44,7 +44,7 @@ This provides an interface to match the Python standard library logging,
|
||||||
for compatibility with structured logging.
|
for compatibility with structured logging.
|
||||||
|
|
||||||
|
|
||||||
### `Context` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Context object providing access to MCP capabilities.
|
Context object providing access to MCP capabilities.
|
||||||
|
|
@ -99,7 +99,7 @@ The context is optional - tools that don't need it can omit the parameter.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `is_background_task` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L204" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `is_background_task` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L204" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_background_task(self) -> bool
|
is_background_task(self) -> bool
|
||||||
|
|
@ -112,7 +112,7 @@ task-aware implementations that can pause the task and wait for
|
||||||
client input.
|
client input.
|
||||||
|
|
||||||
|
|
||||||
#### `task_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L223" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `task_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L223" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
task_id(self) -> str | None
|
task_id(self) -> str | None
|
||||||
|
|
@ -123,7 +123,7 @@ Get the background task ID if running in a background task.
|
||||||
Returns None if not running in a background task context.
|
Returns None if not running in a background task context.
|
||||||
|
|
||||||
|
|
||||||
#### `fastmcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L231" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `fastmcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L231" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
fastmcp(self) -> FastMCP
|
fastmcp(self) -> FastMCP
|
||||||
|
|
@ -132,7 +132,7 @@ fastmcp(self) -> FastMCP
|
||||||
Get the FastMCP instance.
|
Get the FastMCP instance.
|
||||||
|
|
||||||
|
|
||||||
#### `request_context` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L290" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `request_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L290" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
request_context(self) -> RequestContext[ServerSession, Any, Request] | None
|
request_context(self) -> RequestContext[ServerSession, Any, Request] | None
|
||||||
|
|
@ -161,7 +161,7 @@ async def on_request(self, context, call_next):
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
#### `lifespan_context` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L319" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `lifespan_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L319" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
lifespan_context(self) -> dict[str, Any]
|
lifespan_context(self) -> dict[str, Any]
|
||||||
|
|
@ -188,7 +188,7 @@ def my_tool(ctx: Context) -> str:
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
#### `report_progress` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L350" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `report_progress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L350" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
report_progress(self, progress: float, total: float | None = None, message: str | None = None) -> None
|
report_progress(self, progress: float, total: float | None = None, message: str | None = None) -> None
|
||||||
|
|
@ -205,7 +205,7 @@ Works in both foreground (MCP progress notifications) and background
|
||||||
- `message`: Optional status message describing current progress
|
- `message`: Optional status message describing current progress
|
||||||
|
|
||||||
|
|
||||||
#### `list_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L444" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_resources` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L444" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_resources(self) -> list[SDKResource]
|
list_resources(self) -> list[SDKResource]
|
||||||
|
|
@ -217,7 +217,7 @@ List all available resources from the server.
|
||||||
- List of Resource objects available on the server
|
- List of Resource objects available on the server
|
||||||
|
|
||||||
|
|
||||||
#### `list_prompts` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L460" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_prompts` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L460" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_prompts(self) -> list[SDKPrompt]
|
list_prompts(self) -> list[SDKPrompt]
|
||||||
|
|
@ -229,7 +229,7 @@ List all available prompts from the server.
|
||||||
- List of Prompt objects available on the server
|
- List of Prompt objects available on the server
|
||||||
|
|
||||||
|
|
||||||
#### `get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L476" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L476" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_prompt(self, name: str, arguments: dict[str, Any] | None = None) -> GetPromptResult
|
get_prompt(self, name: str, arguments: dict[str, Any] | None = None) -> GetPromptResult
|
||||||
|
|
@ -245,7 +245,7 @@ Get a prompt by name with optional arguments.
|
||||||
- The prompt result
|
- The prompt result
|
||||||
|
|
||||||
|
|
||||||
#### `read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L495" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L495" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read_resource(self, uri: str | AnyUrl) -> ResourceResult
|
read_resource(self, uri: str | AnyUrl) -> ResourceResult
|
||||||
|
|
@ -260,7 +260,7 @@ Read a resource by URI.
|
||||||
- ResourceResult with contents
|
- ResourceResult with contents
|
||||||
|
|
||||||
|
|
||||||
#### `log` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L511" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `log` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L511" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
log(self, message: str, level: LoggingLevel | None = None, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
log(self, message: str, level: LoggingLevel | None = None, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
||||||
|
|
@ -278,7 +278,7 @@ Messages sent to Clients are also logged to the `fastmcp.server.context.to_clien
|
||||||
- `extra`: Optional mapping for additional arguments
|
- `extra`: Optional mapping for additional arguments
|
||||||
|
|
||||||
|
|
||||||
#### `transport` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L540" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L540" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
transport(self) -> TransportType | None
|
transport(self) -> TransportType | None
|
||||||
|
|
@ -290,7 +290,7 @@ Returns the transport type used to run this server: "stdio", "sse",
|
||||||
or "streamable-http". Returns None if called outside of a server context.
|
or "streamable-http". Returns None if called outside of a server context.
|
||||||
|
|
||||||
|
|
||||||
#### `client_supports_extension` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L548" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `client_supports_extension` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L548" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
client_supports_extension(self, extension_id: str) -> bool
|
client_supports_extension(self, extension_id: str) -> bool
|
||||||
|
|
@ -315,7 +315,7 @@ Example::
|
||||||
return "text-only client"
|
return "text-only client"
|
||||||
|
|
||||||
|
|
||||||
#### `client_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L576" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `client_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L576" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
client_id(self) -> str | None
|
client_id(self) -> str | None
|
||||||
|
|
@ -324,7 +324,7 @@ client_id(self) -> str | None
|
||||||
Get the client ID if available.
|
Get the client ID if available.
|
||||||
|
|
||||||
|
|
||||||
#### `request_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L585" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `request_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L585" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
request_id(self) -> str
|
request_id(self) -> str
|
||||||
|
|
@ -335,7 +335,7 @@ Get the unique ID for this request.
|
||||||
Raises RuntimeError if MCP request context is not available.
|
Raises RuntimeError if MCP request context is not available.
|
||||||
|
|
||||||
|
|
||||||
#### `session_id` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L598" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `session_id` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L598" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
session_id(self) -> str
|
session_id(self) -> str
|
||||||
|
|
@ -352,7 +352,7 @@ the same client session.
|
||||||
- for other transports.
|
- for other transports.
|
||||||
|
|
||||||
|
|
||||||
#### `session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L655" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L655" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
session(self) -> ServerSession
|
session(self) -> ServerSession
|
||||||
|
|
@ -366,7 +366,7 @@ In background task mode: Returns the session stored at Context creation.
|
||||||
Raises RuntimeError if no session is available.
|
Raises RuntimeError if no session is available.
|
||||||
|
|
||||||
|
|
||||||
#### `debug` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L681" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `debug` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L681" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
debug(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
debug(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
||||||
|
|
@ -377,7 +377,7 @@ Send a `DEBUG`-level message to the connected MCP Client.
|
||||||
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
||||||
|
|
||||||
|
|
||||||
#### `info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L697" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `info` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L697" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
info(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
info(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
||||||
|
|
@ -388,7 +388,7 @@ Send a `INFO`-level message to the connected MCP Client.
|
||||||
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
||||||
|
|
||||||
|
|
||||||
#### `warning` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L713" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `warning` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L713" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
warning(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
warning(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
||||||
|
|
@ -399,7 +399,7 @@ Send a `WARNING`-level message to the connected MCP Client.
|
||||||
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
||||||
|
|
||||||
|
|
||||||
#### `error` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L729" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `error` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L729" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
error(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
error(self, message: str, logger_name: str | None = None, extra: Mapping[str, Any] | None = None) -> None
|
||||||
|
|
@ -410,7 +410,7 @@ Send a `ERROR`-level message to the connected MCP Client.
|
||||||
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
Messages sent to Clients are also logged to the `fastmcp.server.context.to_client` logger with a level of `DEBUG`.
|
||||||
|
|
||||||
|
|
||||||
#### `list_roots` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L745" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_roots` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L745" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_roots(self) -> list[Root]
|
list_roots(self) -> list[Root]
|
||||||
|
|
@ -419,7 +419,7 @@ list_roots(self) -> list[Root]
|
||||||
List the roots available to the server, as indicated by the client.
|
List the roots available to the server, as indicated by the client.
|
||||||
|
|
||||||
|
|
||||||
#### `send_notification` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L750" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `send_notification` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L750" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
send_notification(self, notification: mcp.types.ServerNotificationType) -> None
|
send_notification(self, notification: mcp.types.ServerNotificationType) -> None
|
||||||
|
|
@ -431,7 +431,7 @@ Send a notification to the client immediately.
|
||||||
- `notification`: An MCP notification instance (e.g., ToolListChangedNotification())
|
- `notification`: An MCP notification instance (e.g., ToolListChangedNotification())
|
||||||
|
|
||||||
|
|
||||||
#### `close_sse_stream` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L760" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `close_sse_stream` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L760" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
close_sse_stream(self) -> None
|
close_sse_stream(self) -> None
|
||||||
|
|
@ -449,7 +449,7 @@ Instead of holding a connection open for minutes, you can periodically close
|
||||||
and let the client reconnect.
|
and let the client reconnect.
|
||||||
|
|
||||||
|
|
||||||
#### `sample_step` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L799" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `sample_step` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L799" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
sample_step(self, messages: str | Sequence[str | SamplingMessage]) -> SampleStep
|
sample_step(self, messages: str | Sequence[str | SamplingMessage]) -> SampleStep
|
||||||
|
|
@ -492,7 +492,7 @@ regardless of this setting.
|
||||||
- - .text: The text content (if any)
|
- - .text: The text content (if any)
|
||||||
|
|
||||||
|
|
||||||
#### `sample` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L878" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `sample` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L878" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[ResultT]
|
sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[ResultT]
|
||||||
|
|
@ -501,7 +501,7 @@ sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[
|
||||||
Overload: With result_type, returns SamplingResult[ResultT].
|
Overload: With result_type, returns SamplingResult[ResultT].
|
||||||
|
|
||||||
|
|
||||||
#### `sample` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L894" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `sample` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L894" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[str]
|
sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[str]
|
||||||
|
|
@ -510,7 +510,7 @@ sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[
|
||||||
Overload: Without result_type, returns SamplingResult[str].
|
Overload: Without result_type, returns SamplingResult[str].
|
||||||
|
|
||||||
|
|
||||||
#### `sample` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L909" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `sample` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L909" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[ResultT] | SamplingResult[str]
|
sample(self, messages: str | Sequence[str | SamplingMessage]) -> SamplingResult[ResultT] | SamplingResult[str]
|
||||||
|
|
@ -558,43 +558,43 @@ regardless of this setting.
|
||||||
- - .history: All messages exchanged during sampling
|
- - .history: All messages exchanged during sampling
|
||||||
|
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L984" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L984" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: None) -> AcceptedElicitation[dict[str, Any]] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: None) -> AcceptedElicitation[dict[str, Any]] | DeclinedElicitation | CancelledElicitation
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L996" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L996" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: type[T]) -> AcceptedElicitation[T] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: type[T]) -> AcceptedElicitation[T] | DeclinedElicitation | CancelledElicitation
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1006" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1006" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: list[str]) -> AcceptedElicitation[str] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: list[str]) -> AcceptedElicitation[str] | DeclinedElicitation | CancelledElicitation
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1016" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1016" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: dict[str, dict[str, str]]) -> AcceptedElicitation[str] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: dict[str, dict[str, str]]) -> AcceptedElicitation[str] | DeclinedElicitation | CancelledElicitation
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1026" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1026" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: list[list[str]]) -> AcceptedElicitation[list[str]] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: list[list[str]]) -> AcceptedElicitation[list[str]] | DeclinedElicitation | CancelledElicitation
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1038" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1038" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: list[dict[str, dict[str, str]]]) -> AcceptedElicitation[list[str]] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: list[dict[str, dict[str, str]]]) -> AcceptedElicitation[list[str]] | DeclinedElicitation | CancelledElicitation
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `elicit` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1050" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `elicit` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1050" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
elicit(self, message: str, response_type: type[T] | list[str] | dict[str, dict[str, str]] | list[list[str]] | list[dict[str, dict[str, str]]] | None = None) -> AcceptedElicitation[T] | AcceptedElicitation[dict[str, Any]] | AcceptedElicitation[str] | AcceptedElicitation[list[str]] | DeclinedElicitation | CancelledElicitation
|
elicit(self, message: str, response_type: type[T] | list[str] | dict[str, dict[str, str]] | list[list[str]] | list[dict[str, dict[str, str]]] | None = None) -> AcceptedElicitation[T] | AcceptedElicitation[dict[str, Any]] | AcceptedElicitation[str] | AcceptedElicitation[list[str]] | DeclinedElicitation | CancelledElicitation
|
||||||
|
|
@ -623,7 +623,7 @@ type or dataclass or BaseModel. If it is a primitive type, an
|
||||||
object schema with a single "value" field will be generated.
|
object schema with a single "value" field will be generated.
|
||||||
|
|
||||||
|
|
||||||
#### `set_state` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1164" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_state` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1164" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_state(self, key: str, value: Any) -> None
|
set_state(self, key: str, value: Any) -> None
|
||||||
|
|
@ -644,7 +644,7 @@ requests.
|
||||||
The key is automatically prefixed with the session identifier.
|
The key is automatically prefixed with the session identifier.
|
||||||
|
|
||||||
|
|
||||||
#### `get_state` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1206" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_state` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1206" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_state(self, key: str) -> Any
|
get_state(self, key: str) -> Any
|
||||||
|
|
@ -658,7 +658,7 @@ then falls back to the session-scoped state store.
|
||||||
Returns None if the key is not found.
|
Returns None if the key is not found.
|
||||||
|
|
||||||
|
|
||||||
#### `delete_state` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1220" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `delete_state` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1220" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
delete_state(self, key: str) -> None
|
delete_state(self, key: str) -> None
|
||||||
|
|
@ -669,7 +669,7 @@ Delete a value from the state store.
|
||||||
Removes from both request-scoped and session-scoped stores.
|
Removes from both request-scoped and session-scoped stores.
|
||||||
|
|
||||||
|
|
||||||
#### `enable_components` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1241" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `enable_components` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1241" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
enable_components(self) -> None
|
enable_components(self) -> None
|
||||||
|
|
@ -693,7 +693,7 @@ ResourceListChangedNotification, and PromptListChangedNotification.
|
||||||
- `match_all`: If True, matches all components regardless of other criteria.
|
- `match_all`: If True, matches all components regardless of other criteria.
|
||||||
|
|
||||||
|
|
||||||
#### `disable_components` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1279" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `disable_components` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1279" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
disable_components(self) -> None
|
disable_components(self) -> None
|
||||||
|
|
@ -717,7 +717,7 @@ ResourceListChangedNotification, and PromptListChangedNotification.
|
||||||
- `match_all`: If True, matches all components regardless of other criteria.
|
- `match_all`: If True, matches all components regardless of other criteria.
|
||||||
|
|
||||||
|
|
||||||
#### `reset_visibility` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/context.py#L1317" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `reset_visibility` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/context.py#L1317" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
reset_visibility(self) -> None
|
reset_visibility(self) -> None
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ CurrentWorker) and background task execution require fastmcp[tasks].
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `get_task_context` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_task_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L95" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_task_context() -> TaskContextInfo | None
|
get_task_context() -> TaskContextInfo | None
|
||||||
|
|
@ -31,7 +31,7 @@ Returns None if not running in a task context (e.g., foreground execution).
|
||||||
- TaskContextInfo with task_id and session_id, or None if not in a task.
|
- TaskContextInfo with task_id and session_id, or None if not in a task.
|
||||||
|
|
||||||
|
|
||||||
### `register_task_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `register_task_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L133" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
register_task_session(session_id: str, session: ServerSession) -> None
|
register_task_session(session_id: str, session: ServerSession) -> None
|
||||||
|
|
@ -49,7 +49,7 @@ client disconnects.
|
||||||
- `session`: The ServerSession instance
|
- `session`: The ServerSession instance
|
||||||
|
|
||||||
|
|
||||||
### `get_task_session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L147" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_task_session` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L147" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_task_session(session_id: str) -> ServerSession | None
|
get_task_session(session_id: str) -> ServerSession | None
|
||||||
|
|
@ -65,7 +65,7 @@ Get a registered session by ID if still alive.
|
||||||
- The ServerSession if found and alive, None otherwise
|
- The ServerSession if found and alive, None otherwise
|
||||||
|
|
||||||
|
|
||||||
### `is_docket_available` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L183" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `is_docket_available` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L183" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
is_docket_available() -> bool
|
is_docket_available() -> bool
|
||||||
|
|
@ -75,7 +75,7 @@ is_docket_available() -> bool
|
||||||
Check if pydocket is installed.
|
Check if pydocket is installed.
|
||||||
|
|
||||||
|
|
||||||
### `require_docket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L196" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `require_docket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L196" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
require_docket(feature: str) -> None
|
require_docket(feature: str) -> None
|
||||||
|
|
@ -89,7 +89,7 @@ Raise ImportError with install instructions if docket not available.
|
||||||
"CurrentDocket()"). Will be included in the error message.
|
"CurrentDocket()"). Will be included in the error message.
|
||||||
|
|
||||||
|
|
||||||
### `transform_context_annotations` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L238" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `transform_context_annotations` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L238" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
transform_context_annotations(fn: Callable[..., Any]) -> Callable[..., Any]
|
transform_context_annotations(fn: Callable[..., Any]) -> Callable[..., Any]
|
||||||
|
|
@ -115,7 +115,7 @@ allows them to have defaults in any order.
|
||||||
- Function with modified signature (same function object, updated __signature__)
|
- Function with modified signature (same function object, updated __signature__)
|
||||||
|
|
||||||
|
|
||||||
### `get_context` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L389" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_context` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L389" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_context() -> Context
|
get_context() -> Context
|
||||||
|
|
@ -125,7 +125,7 @@ get_context() -> Context
|
||||||
Get the current FastMCP Context instance directly.
|
Get the current FastMCP Context instance directly.
|
||||||
|
|
||||||
|
|
||||||
### `get_server` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L399" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L399" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_server() -> FastMCP
|
get_server() -> FastMCP
|
||||||
|
|
@ -141,7 +141,7 @@ Get the current FastMCP server instance directly.
|
||||||
- `RuntimeError`: If no server in context
|
- `RuntimeError`: If no server in context
|
||||||
|
|
||||||
|
|
||||||
### `get_http_request` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L417" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_http_request` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L417" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_http_request() -> Request
|
get_http_request() -> Request
|
||||||
|
|
@ -153,7 +153,7 @@ Get the current HTTP request.
|
||||||
Tries MCP SDK's request_ctx first, then falls back to FastMCP's HTTP context.
|
Tries MCP SDK's request_ctx first, then falls back to FastMCP's HTTP context.
|
||||||
|
|
||||||
|
|
||||||
### `get_http_headers` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L437" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_http_headers` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L437" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_http_headers(include_all: bool = False) -> dict[str, str]
|
get_http_headers(include_all: bool = False) -> dict[str, str]
|
||||||
|
|
@ -169,7 +169,7 @@ By default, strips problematic headers like `content-length` that cause issues
|
||||||
if forwarded to downstream clients. If `include_all` is True, all headers are returned.
|
if forwarded to downstream clients. If `include_all` is True, all headers are returned.
|
||||||
|
|
||||||
|
|
||||||
### `get_access_token` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L483" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_access_token` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L483" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_access_token() -> AccessToken | None
|
get_access_token() -> AccessToken | None
|
||||||
|
|
@ -188,7 +188,7 @@ token snapshot stored in Redis at task submission time.
|
||||||
- The access token if an authenticated user is available, None otherwise.
|
- The access token if an authenticated user is available, None otherwise.
|
||||||
|
|
||||||
|
|
||||||
### `without_injected_parameters` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L555" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `without_injected_parameters` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L555" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
without_injected_parameters(fn: Callable[..., Any]) -> Callable[..., Any]
|
without_injected_parameters(fn: Callable[..., Any]) -> Callable[..., Any]
|
||||||
|
|
@ -213,7 +213,7 @@ Handles:
|
||||||
- Async wrapper function without injected parameters
|
- Async wrapper function without injected parameters
|
||||||
|
|
||||||
|
|
||||||
### `resolve_dependencies` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L696" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `resolve_dependencies` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L696" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
resolve_dependencies(fn: Callable[..., Any], arguments: dict[str, Any]) -> AsyncGenerator[dict[str, Any], None]
|
resolve_dependencies(fn: Callable[..., Any], arguments: dict[str, Any]) -> AsyncGenerator[dict[str, Any], None]
|
||||||
|
|
@ -239,7 +239,7 @@ time, so all injection goes through the unified DI system.
|
||||||
which will be filtered out)
|
which will be filtered out)
|
||||||
|
|
||||||
|
|
||||||
### `CurrentContext` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L837" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentContext` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L837" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentContext() -> Context
|
CurrentContext() -> Context
|
||||||
|
|
@ -258,7 +258,7 @@ current MCP operation (tool/resource/prompt call).
|
||||||
- `RuntimeError`: If no active context found (during resolution)
|
- `RuntimeError`: If no active context found (during resolution)
|
||||||
|
|
||||||
|
|
||||||
### `CurrentDocket` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L880" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentDocket` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L880" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentDocket() -> Docket
|
CurrentDocket() -> Docket
|
||||||
|
|
@ -278,7 +278,7 @@ automatically creates for background task scheduling.
|
||||||
- `ImportError`: If fastmcp[tasks] not installed
|
- `ImportError`: If fastmcp[tasks] not installed
|
||||||
|
|
||||||
|
|
||||||
### `CurrentWorker` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L925" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentWorker` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L925" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentWorker() -> Worker
|
CurrentWorker() -> Worker
|
||||||
|
|
@ -298,7 +298,7 @@ automatically creates for background task processing.
|
||||||
- `ImportError`: If fastmcp[tasks] not installed
|
- `ImportError`: If fastmcp[tasks] not installed
|
||||||
|
|
||||||
|
|
||||||
### `CurrentFastMCP` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L967" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentFastMCP` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L967" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentFastMCP() -> FastMCP
|
CurrentFastMCP() -> FastMCP
|
||||||
|
|
@ -316,7 +316,7 @@ This dependency provides access to the active FastMCP server.
|
||||||
- `RuntimeError`: If no server in context (during resolution)
|
- `RuntimeError`: If no server in context (during resolution)
|
||||||
|
|
||||||
|
|
||||||
### `CurrentRequest` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1002" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentRequest` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1002" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentRequest() -> Request
|
CurrentRequest() -> Request
|
||||||
|
|
@ -336,7 +336,7 @@ current HTTP request. Only available when running over HTTP transports
|
||||||
- `RuntimeError`: If no HTTP request in context (e.g., STDIO transport)
|
- `RuntimeError`: If no HTTP request in context (e.g., STDIO transport)
|
||||||
|
|
||||||
|
|
||||||
### `CurrentHeaders` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1038" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentHeaders` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1038" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentHeaders() -> dict[str, str]
|
CurrentHeaders() -> dict[str, str]
|
||||||
|
|
@ -353,7 +353,7 @@ safe to use in code that might run over any transport.
|
||||||
- A dependency that resolves to a dictionary of header name -> value
|
- A dependency that resolves to a dictionary of header name -> value
|
||||||
|
|
||||||
|
|
||||||
### `CurrentAccessToken` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1228" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CurrentAccessToken` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1228" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
CurrentAccessToken() -> AccessToken
|
CurrentAccessToken() -> AccessToken
|
||||||
|
|
@ -372,7 +372,7 @@ authenticated request. Raises an error if no authentication is present.
|
||||||
- `RuntimeError`: If no authenticated user (use get_access_token() for optional)
|
- `RuntimeError`: If no authenticated user (use get_access_token() for optional)
|
||||||
|
|
||||||
|
|
||||||
### `TokenClaim` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1280" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TokenClaim` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1280" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
TokenClaim(name: str) -> str
|
TokenClaim(name: str) -> str
|
||||||
|
|
@ -397,7 +397,7 @@ without needing the full token object.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `TaskContextInfo` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L81" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `TaskContextInfo` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L81" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Information about the current background task context.
|
Information about the current background task context.
|
||||||
|
|
@ -406,7 +406,7 @@ Returned by ``get_task_context()`` when running inside a Docket worker.
|
||||||
Contains identifiers needed to communicate with the MCP session.
|
Contains identifiers needed to communicate with the MCP session.
|
||||||
|
|
||||||
|
|
||||||
### `ProgressLike` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1065" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ProgressLike` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1065" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Protocol for progress tracking interface.
|
Protocol for progress tracking interface.
|
||||||
|
|
@ -417,7 +417,7 @@ and Docket's Progress (worker context).
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `current` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1073" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `current` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1073" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
current(self) -> int | None
|
current(self) -> int | None
|
||||||
|
|
@ -426,7 +426,7 @@ current(self) -> int | None
|
||||||
Current progress value.
|
Current progress value.
|
||||||
|
|
||||||
|
|
||||||
#### `total` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1078" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1078" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
total(self) -> int
|
total(self) -> int
|
||||||
|
|
@ -435,7 +435,7 @@ total(self) -> int
|
||||||
Total/target progress value.
|
Total/target progress value.
|
||||||
|
|
||||||
|
|
||||||
#### `message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1083" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1083" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
message(self) -> str | None
|
message(self) -> str | None
|
||||||
|
|
@ -444,7 +444,7 @@ message(self) -> str | None
|
||||||
Current progress message.
|
Current progress message.
|
||||||
|
|
||||||
|
|
||||||
#### `set_total` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1087" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1087" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_total(self, total: int) -> None
|
set_total(self, total: int) -> None
|
||||||
|
|
@ -453,7 +453,7 @@ set_total(self, total: int) -> None
|
||||||
Set the total/target value for progress tracking.
|
Set the total/target value for progress tracking.
|
||||||
|
|
||||||
|
|
||||||
#### `increment` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1091" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `increment` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1091" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
increment(self, amount: int = 1) -> None
|
increment(self, amount: int = 1) -> None
|
||||||
|
|
@ -462,7 +462,7 @@ increment(self, amount: int = 1) -> None
|
||||||
Atomically increment the current progress value.
|
Atomically increment the current progress value.
|
||||||
|
|
||||||
|
|
||||||
#### `set_message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1095" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1095" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_message(self, message: str | None) -> None
|
set_message(self, message: str | None) -> None
|
||||||
|
|
@ -471,7 +471,7 @@ set_message(self, message: str | None) -> None
|
||||||
Update the progress status message.
|
Update the progress status message.
|
||||||
|
|
||||||
|
|
||||||
### `InMemoryProgress` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `InMemoryProgress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
In-memory progress tracker for immediate tool execution.
|
In-memory progress tracker for immediate tool execution.
|
||||||
|
|
@ -483,25 +483,25 @@ progress doesn't need to be observable across processes.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `current` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1120" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `current` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1120" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
current(self) -> int | None
|
current(self) -> int | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `total` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1124" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1124" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
total(self) -> int
|
total(self) -> int
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1128" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1128" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
message(self) -> str | None
|
message(self) -> str | None
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `set_total` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1131" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_total` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1131" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_total(self, total: int) -> None
|
set_total(self, total: int) -> None
|
||||||
|
|
@ -510,7 +510,7 @@ set_total(self, total: int) -> None
|
||||||
Set the total/target value for progress tracking.
|
Set the total/target value for progress tracking.
|
||||||
|
|
||||||
|
|
||||||
#### `increment` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1137" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `increment` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1137" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
increment(self, amount: int = 1) -> None
|
increment(self, amount: int = 1) -> None
|
||||||
|
|
@ -519,7 +519,7 @@ increment(self, amount: int = 1) -> None
|
||||||
Atomically increment the current progress value.
|
Atomically increment the current progress value.
|
||||||
|
|
||||||
|
|
||||||
#### `set_message` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1146" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `set_message` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1146" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_message(self, message: str | None) -> None
|
set_message(self, message: str | None) -> None
|
||||||
|
|
@ -528,7 +528,7 @@ set_message(self, message: str | None) -> None
|
||||||
Update the progress status message.
|
Update the progress status message.
|
||||||
|
|
||||||
|
|
||||||
### `Progress` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1151" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Progress` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/dependencies.py#L1151" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
FastMCP Progress dependency that works in both server and worker contexts.
|
FastMCP Progress dependency that works in both server and worker contexts.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: elicitation
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `parse_elicit_response_type` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L132" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `parse_elicit_response_type` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L132" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
parse_elicit_response_type(response_type: Any) -> ElicitConfig
|
parse_elicit_response_type(response_type: Any) -> ElicitConfig
|
||||||
|
|
@ -28,7 +28,7 @@ Supports multiple syntaxes:
|
||||||
- Other types (dataclass, BaseModel): use directly
|
- Other types (dataclass, BaseModel): use directly
|
||||||
|
|
||||||
|
|
||||||
### `handle_elicit_accept` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L265" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `handle_elicit_accept` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L265" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
handle_elicit_accept(config: ElicitConfig, content: Any) -> AcceptedElicitation[Any]
|
handle_elicit_accept(config: ElicitConfig, content: Any) -> AcceptedElicitation[Any]
|
||||||
|
|
@ -45,7 +45,7 @@ Handle an accepted elicitation response.
|
||||||
- AcceptedElicitation with the extracted/validated data
|
- AcceptedElicitation with the extracted/validated data
|
||||||
|
|
||||||
|
|
||||||
### `get_elicitation_schema` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L324" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `get_elicitation_schema` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L324" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_elicitation_schema(response_type: type[T]) -> dict[str, Any]
|
get_elicitation_schema(response_type: type[T]) -> dict[str, Any]
|
||||||
|
|
@ -58,7 +58,7 @@ Get the schema for an elicitation response.
|
||||||
- `response_type`: The type of the response
|
- `response_type`: The type of the response
|
||||||
|
|
||||||
|
|
||||||
### `validate_elicitation_json_schema` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L343" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `validate_elicitation_json_schema` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L343" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
validate_elicitation_json_schema(schema: dict[str, Any]) -> None
|
validate_elicitation_json_schema(schema: dict[str, Any]) -> None
|
||||||
|
|
@ -83,7 +83,7 @@ This ensures the schema is compatible with MCP elicitation requirements:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `ElicitationJsonSchema` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ElicitationJsonSchema` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Custom JSON schema generator for MCP elicitation that always inlines enums.
|
Custom JSON schema generator for MCP elicitation that always inlines enums.
|
||||||
|
|
@ -95,7 +95,7 @@ Optionally adds enumNames for better UI display when available.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `generate_inner` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `generate_inner` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
generate_inner(self, schema: core_schema.CoreSchema) -> JsonSchemaValue
|
generate_inner(self, schema: core_schema.CoreSchema) -> JsonSchemaValue
|
||||||
|
|
@ -104,7 +104,7 @@ generate_inner(self, schema: core_schema.CoreSchema) -> JsonSchemaValue
|
||||||
Override to prevent ref generation for enums and handle list schemas.
|
Override to prevent ref generation for enums and handle list schemas.
|
||||||
|
|
||||||
|
|
||||||
#### `list_schema` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L57" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `list_schema` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L57" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
list_schema(self, schema: core_schema.ListSchema) -> JsonSchemaValue
|
list_schema(self, schema: core_schema.ListSchema) -> JsonSchemaValue
|
||||||
|
|
@ -113,7 +113,7 @@ list_schema(self, schema: core_schema.ListSchema) -> JsonSchemaValue
|
||||||
Generate schema for list types, detecting enum items for multi-select.
|
Generate schema for list types, detecting enum items for multi-select.
|
||||||
|
|
||||||
|
|
||||||
#### `enum_schema` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `enum_schema` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue
|
enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue
|
||||||
|
|
@ -125,15 +125,15 @@ Always generates enum pattern: `{"enum": [value, ...]}`
|
||||||
Titled enums are handled separately via dict-based syntax in ctx.elicit().
|
Titled enums are handled separately via dict-based syntax in ctx.elicit().
|
||||||
|
|
||||||
|
|
||||||
### `AcceptedElicitation` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AcceptedElicitation` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Result when user accepts the elicitation.
|
Result when user accepts the elicitation.
|
||||||
|
|
||||||
|
|
||||||
### `ScalarElicitationType` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L113" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ScalarElicitationType` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L113" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
### `ElicitConfig` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ElicitConfig` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration for an elicitation request.
|
Configuration for an elicitation request.
|
||||||
|
|
|
||||||
|
|
@ -16,19 +16,19 @@ AsyncKeyValue protocol, allowing users to configure any compatible backend
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `EventEntry` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/event_store.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `EventEntry` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/event_store.py#L26" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Stored event entry.
|
Stored event entry.
|
||||||
|
|
||||||
|
|
||||||
### `StreamEventList` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/event_store.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StreamEventList` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/event_store.py#L34" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
List of event IDs for a stream.
|
List of event IDs for a stream.
|
||||||
|
|
||||||
|
|
||||||
### `EventStore` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/event_store.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `EventStore` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/event_store.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
EventStore implementation backed by AsyncKeyValue.
|
EventStore implementation backed by AsyncKeyValue.
|
||||||
|
|
@ -45,7 +45,7 @@ following the same pattern as ResponseCachingMiddleware and OAuthProxy.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `store_event` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/event_store.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `store_event` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/event_store.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
store_event(self, stream_id: StreamId, message: JSONRPCMessage | None) -> EventId
|
store_event(self, stream_id: StreamId, message: JSONRPCMessage | None) -> EventId
|
||||||
|
|
@ -61,7 +61,7 @@ Store an event and return its ID.
|
||||||
- The generated event ID for the stored event
|
- The generated event ID for the stored event
|
||||||
|
|
||||||
|
|
||||||
#### `replay_events_after` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/event_store.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `replay_events_after` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/event_store.py#L135" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
replay_events_after(self, last_event_id: EventId, send_callback: EventCallback) -> StreamId | None
|
replay_events_after(self, last_event_id: EventId, send_callback: EventCallback) -> StreamId | None
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ sidebarTitle: http
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `set_http_request` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L77" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `set_http_request` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L77" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
set_http_request(request: Request) -> Generator[Request, None, None]
|
set_http_request(request: Request) -> Generator[Request, None, None]
|
||||||
```
|
```
|
||||||
|
|
||||||
### `create_base_app` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_base_app` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_base_app(routes: list[BaseRoute], middleware: list[Middleware], debug: bool = False, lifespan: Callable | None = None) -> StarletteWithLifespan
|
create_base_app(routes: list[BaseRoute], middleware: list[Middleware], debug: bool = False, lifespan: Callable | None = None) -> StarletteWithLifespan
|
||||||
|
|
@ -32,7 +32,7 @@ Create a base Starlette app with common middleware and routes.
|
||||||
- A Starlette application
|
- A Starlette application
|
||||||
|
|
||||||
|
|
||||||
### `create_sse_app` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L139" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_sse_app` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L139" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_sse_app(server: FastMCP[LifespanResultT], message_path: str, sse_path: str, auth: AuthProvider | None = None, debug: bool = False, routes: list[BaseRoute] | None = None, middleware: list[Middleware] | None = None) -> StarletteWithLifespan
|
create_sse_app(server: FastMCP[LifespanResultT], message_path: str, sse_path: str, auth: AuthProvider | None = None, debug: bool = False, routes: list[BaseRoute] | None = None, middleware: list[Middleware] | None = None) -> StarletteWithLifespan
|
||||||
|
|
@ -54,7 +54,7 @@ Returns:
|
||||||
A Starlette application with RequestContextMiddleware
|
A Starlette application with RequestContextMiddleware
|
||||||
|
|
||||||
|
|
||||||
### `create_streamable_http_app` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L266" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `create_streamable_http_app` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L266" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_streamable_http_app(server: FastMCP[LifespanResultT], streamable_http_path: str, event_store: EventStore | None = None, retry_interval: int | None = None, auth: AuthProvider | None = None, json_response: bool = False, stateless_http: bool = False, debug: bool = False, routes: list[BaseRoute] | None = None, middleware: list[Middleware] | None = None) -> StarletteWithLifespan
|
create_streamable_http_app(server: FastMCP[LifespanResultT], streamable_http_path: str, event_store: EventStore | None = None, retry_interval: int | None = None, auth: AuthProvider | None = None, json_response: bool = False, stateless_http: bool = False, debug: bool = False, routes: list[BaseRoute] | None = None, middleware: list[Middleware] | None = None) -> StarletteWithLifespan
|
||||||
|
|
@ -83,23 +83,23 @@ disconnections. Requires event_store to be set. Defaults to SDK default.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `StreamableHTTPASGIApp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StreamableHTTPASGIApp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L32" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
ASGI application wrapper for Streamable HTTP server transport.
|
ASGI application wrapper for Streamable HTTP server transport.
|
||||||
|
|
||||||
|
|
||||||
### `StarletteWithLifespan` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L70" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `StarletteWithLifespan` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L70" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `lifespan` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `lifespan` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
lifespan(self) -> Lifespan[Starlette]
|
lifespan(self) -> Lifespan[Starlette]
|
||||||
```
|
```
|
||||||
|
|
||||||
### `RequestContextMiddleware` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/http.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `RequestContextMiddleware` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/http.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Middleware that stores each request in a ContextVar and sets transport type.
|
Middleware that stores each request in a ContextVar and sets transport type.
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ To compose with existing `@asynccontextmanager` lifespans, wrap them explicitly:
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### `lifespan` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `lifespan` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
lifespan(fn: LifespanFn) -> Lifespan
|
lifespan(fn: LifespanFn) -> Lifespan
|
||||||
|
|
@ -74,7 +74,7 @@ a dict for the lifespan context.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `Lifespan` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `Lifespan` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L61" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Composable lifespan wrapper.
|
Composable lifespan wrapper.
|
||||||
|
|
@ -83,7 +83,7 @@ Wraps an async generator function and enables composition via the `|` operator.
|
||||||
The wrapped function should yield a dict that becomes part of the lifespan context.
|
The wrapped function should yield a dict that becomes part of the lifespan context.
|
||||||
|
|
||||||
|
|
||||||
### `ContextManagerLifespan` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ContextManagerLifespan` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Lifespan wrapper for already-wrapped context manager functions.
|
Lifespan wrapper for already-wrapped context manager functions.
|
||||||
|
|
@ -91,7 +91,7 @@ Lifespan wrapper for already-wrapped context manager functions.
|
||||||
Use this for functions already decorated with @asynccontextmanager.
|
Use this for functions already decorated with @asynccontextmanager.
|
||||||
|
|
||||||
|
|
||||||
### `ComposedLifespan` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L137" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ComposedLifespan` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/lifespan.py#L137" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Two lifespans composed together.
|
Two lifespans composed together.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ sidebarTitle: low_level
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `MiddlewareServerSession` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `MiddlewareServerSession` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
ServerSession that routes initialization requests through FastMCP middleware.
|
ServerSession that routes initialization requests through FastMCP middleware.
|
||||||
|
|
@ -15,7 +15,7 @@ ServerSession that routes initialization requests through FastMCP middleware.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `fastmcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `fastmcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
fastmcp(self) -> FastMCP
|
fastmcp(self) -> FastMCP
|
||||||
|
|
@ -24,7 +24,7 @@ fastmcp(self) -> FastMCP
|
||||||
Get the FastMCP instance.
|
Get the FastMCP instance.
|
||||||
|
|
||||||
|
|
||||||
#### `client_supports_extension` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `client_supports_extension` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L53" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
client_supports_extension(self, extension_id: str) -> bool
|
client_supports_extension(self, extension_id: str) -> bool
|
||||||
|
|
@ -36,11 +36,11 @@ Inspects the ``extensions`` extra field on ``ClientCapabilities``
|
||||||
sent by the client during initialization.
|
sent by the client during initialization.
|
||||||
|
|
||||||
|
|
||||||
### `LowLevelServer` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L152" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `LowLevelServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L152" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `fastmcp` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L166" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `fastmcp` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L166" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
fastmcp(self) -> FastMCP
|
fastmcp(self) -> FastMCP
|
||||||
|
|
@ -49,13 +49,13 @@ fastmcp(self) -> FastMCP
|
||||||
Get the FastMCP instance.
|
Get the FastMCP instance.
|
||||||
|
|
||||||
|
|
||||||
#### `create_initialization_options` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L173" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `create_initialization_options` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L173" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
create_initialization_options(self, notification_options: NotificationOptions | None = None, experimental_capabilities: dict[str, dict[str, Any]] | None = None, **kwargs: Any) -> InitializationOptions
|
create_initialization_options(self, notification_options: NotificationOptions | None = None, experimental_capabilities: dict[str, dict[str, Any]] | None = None, **kwargs: Any) -> InitializationOptions
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `get_capabilities` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L188" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_capabilities` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L188" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_capabilities(self, notification_options: NotificationOptions, experimental_capabilities: dict[str, dict[str, Any]]) -> mcp.types.ServerCapabilities
|
get_capabilities(self, notification_options: NotificationOptions, experimental_capabilities: dict[str, dict[str, Any]]) -> mcp.types.ServerCapabilities
|
||||||
|
|
@ -68,7 +68,7 @@ capabilities.experimental.tasks, which is required by the MCP spec and
|
||||||
enables proper task detection by clients like VS Code Copilot 1.107+.
|
enables proper task detection by clients like VS Code Copilot 1.107+.
|
||||||
|
|
||||||
|
|
||||||
#### `run` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L222" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `run` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L222" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
run(self, read_stream: MemoryObjectReceiveStream[SessionMessage | Exception], write_stream: MemoryObjectSendStream[SessionMessage], initialization_options: InitializationOptions, raise_exceptions: bool = False, stateless: bool = False)
|
run(self, read_stream: MemoryObjectReceiveStream[SessionMessage | Exception], write_stream: MemoryObjectSendStream[SessionMessage], initialization_options: InitializationOptions, raise_exceptions: bool = False, stateless: bool = False)
|
||||||
|
|
@ -77,7 +77,7 @@ run(self, read_stream: MemoryObjectReceiveStream[SessionMessage | Exception], wr
|
||||||
Overrides the run method to use the MiddlewareServerSession.
|
Overrides the run method to use the MiddlewareServerSession.
|
||||||
|
|
||||||
|
|
||||||
#### `read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L258" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
read_resource(self) -> Callable[[Callable[[AnyUrl], Awaitable[mcp.types.ReadResourceResult | mcp.types.CreateTaskResult]]], Callable[[AnyUrl], Awaitable[mcp.types.ReadResourceResult | mcp.types.CreateTaskResult]]]
|
read_resource(self) -> Callable[[Callable[[AnyUrl], Awaitable[mcp.types.ReadResourceResult | mcp.types.CreateTaskResult]]], Callable[[AnyUrl], Awaitable[mcp.types.ReadResourceResult | mcp.types.CreateTaskResult]]]
|
||||||
|
|
@ -92,7 +92,7 @@ This decorator can be removed once the MCP SDK adds native CreateTaskResult supp
|
||||||
for resources.
|
for resources.
|
||||||
|
|
||||||
|
|
||||||
#### `get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/low_level.py#L302" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/low_level.py#L302" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_prompt(self) -> Callable[[Callable[[str, dict[str, Any] | None], Awaitable[mcp.types.GetPromptResult | mcp.types.CreateTaskResult]]], Callable[[str, dict[str, Any] | None], Awaitable[mcp.types.GetPromptResult | mcp.types.CreateTaskResult]]]
|
get_prompt(self) -> Callable[[Callable[[str, dict[str, Any] | None], Awaitable[mcp.types.GetPromptResult | mcp.types.CreateTaskResult]]], Callable[[str, dict[str, Any] | None], Awaitable[mcp.types.GetPromptResult | mcp.types.CreateTaskResult]]]
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ Example:
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `AuthMiddleware` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `AuthMiddleware` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L51" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Global authorization middleware using callable checks.
|
Global authorization middleware using callable checks.
|
||||||
|
|
@ -52,7 +52,7 @@ All checks must pass for authorization to succeed (AND logic).
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `on_list_tools` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_tools` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_tools(self, context: MiddlewareContext[mt.ListToolsRequest], call_next: CallNext[mt.ListToolsRequest, Sequence[Tool]]) -> Sequence[Tool]
|
on_list_tools(self, context: MiddlewareContext[mt.ListToolsRequest], call_next: CallNext[mt.ListToolsRequest, Sequence[Tool]]) -> Sequence[Tool]
|
||||||
|
|
@ -61,7 +61,7 @@ on_list_tools(self, context: MiddlewareContext[mt.ListToolsRequest], call_next:
|
||||||
Filter tools/list response based on auth checks.
|
Filter tools/list response based on auth checks.
|
||||||
|
|
||||||
|
|
||||||
#### `on_call_tool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_call_tool` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L110" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_call_tool(self, context: MiddlewareContext[mt.CallToolRequestParams], call_next: CallNext[mt.CallToolRequestParams, ToolResult]) -> ToolResult
|
on_call_tool(self, context: MiddlewareContext[mt.CallToolRequestParams], call_next: CallNext[mt.CallToolRequestParams, ToolResult]) -> ToolResult
|
||||||
|
|
@ -70,7 +70,7 @@ on_call_tool(self, context: MiddlewareContext[mt.CallToolRequestParams], call_ne
|
||||||
Check auth before tool execution.
|
Check auth before tool execution.
|
||||||
|
|
||||||
|
|
||||||
#### `on_list_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_resources` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_resources(self, context: MiddlewareContext[mt.ListResourcesRequest], call_next: CallNext[mt.ListResourcesRequest, Sequence[Resource]]) -> Sequence[Resource]
|
on_list_resources(self, context: MiddlewareContext[mt.ListResourcesRequest], call_next: CallNext[mt.ListResourcesRequest, Sequence[Resource]]) -> Sequence[Resource]
|
||||||
|
|
@ -79,7 +79,7 @@ on_list_resources(self, context: MiddlewareContext[mt.ListResourcesRequest], cal
|
||||||
Filter resources/list response based on auth checks.
|
Filter resources/list response based on auth checks.
|
||||||
|
|
||||||
|
|
||||||
#### `on_read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L177" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L177" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_read_resource(self, context: MiddlewareContext[mt.ReadResourceRequestParams], call_next: CallNext[mt.ReadResourceRequestParams, ResourceResult]) -> ResourceResult
|
on_read_resource(self, context: MiddlewareContext[mt.ReadResourceRequestParams], call_next: CallNext[mt.ReadResourceRequestParams, ResourceResult]) -> ResourceResult
|
||||||
|
|
@ -88,7 +88,7 @@ on_read_resource(self, context: MiddlewareContext[mt.ReadResourceRequestParams],
|
||||||
Check auth before resource read.
|
Check auth before resource read.
|
||||||
|
|
||||||
|
|
||||||
#### `on_list_resource_templates` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L220" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_resource_templates` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L220" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_resource_templates(self, context: MiddlewareContext[mt.ListResourceTemplatesRequest], call_next: CallNext[mt.ListResourceTemplatesRequest, Sequence[ResourceTemplate]]) -> Sequence[ResourceTemplate]
|
on_list_resource_templates(self, context: MiddlewareContext[mt.ListResourceTemplatesRequest], call_next: CallNext[mt.ListResourceTemplatesRequest, Sequence[ResourceTemplate]]) -> Sequence[ResourceTemplate]
|
||||||
|
|
@ -97,7 +97,7 @@ on_list_resource_templates(self, context: MiddlewareContext[mt.ListResourceTempl
|
||||||
Filter resource templates/list response based on auth checks.
|
Filter resource templates/list response based on auth checks.
|
||||||
|
|
||||||
|
|
||||||
#### `on_list_prompts` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L246" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_prompts` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L246" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_prompts(self, context: MiddlewareContext[mt.ListPromptsRequest], call_next: CallNext[mt.ListPromptsRequest, Sequence[Prompt]]) -> Sequence[Prompt]
|
on_list_prompts(self, context: MiddlewareContext[mt.ListPromptsRequest], call_next: CallNext[mt.ListPromptsRequest, Sequence[Prompt]]) -> Sequence[Prompt]
|
||||||
|
|
@ -106,7 +106,7 @@ on_list_prompts(self, context: MiddlewareContext[mt.ListPromptsRequest], call_ne
|
||||||
Filter prompts/list response based on auth checks.
|
Filter prompts/list response based on auth checks.
|
||||||
|
|
||||||
|
|
||||||
#### `on_get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L270" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/authorization.py#L270" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_get_prompt(self, context: MiddlewareContext[mt.GetPromptRequestParams], call_next: CallNext[mt.GetPromptRequestParams, PromptResult]) -> PromptResult
|
on_get_prompt(self, context: MiddlewareContext[mt.GetPromptRequestParams], call_next: CallNext[mt.GetPromptRequestParams, PromptResult]) -> PromptResult
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,13 @@ A middleware for response caching.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `CachableResourceContent` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CachableResourceContent` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A wrapper for ResourceContent that can be cached.
|
A wrapper for ResourceContent that can be cached.
|
||||||
|
|
||||||
|
|
||||||
### `CachableResourceResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CachableResourceResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L46" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A wrapper for ResourceResult that can be cached.
|
A wrapper for ResourceResult that can be cached.
|
||||||
|
|
@ -24,47 +24,47 @@ A wrapper for ResourceResult that can be cached.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_size` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L52" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_size` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L52" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_size(self) -> int
|
get_size(self) -> int
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `wrap` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `wrap` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L56" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
wrap(cls, value: ResourceResult) -> Self
|
wrap(cls, value: ResourceResult) -> Self
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `unwrap` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L67" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `unwrap` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L67" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
unwrap(self) -> ResourceResult
|
unwrap(self) -> ResourceResult
|
||||||
```
|
```
|
||||||
|
|
||||||
### `CachableToolResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L79" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CachableToolResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L79" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `wrap` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `wrap` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L85" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
wrap(cls, value: ToolResult) -> Self
|
wrap(cls, value: ToolResult) -> Self
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `unwrap` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `unwrap` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L92" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
unwrap(self) -> ToolResult
|
unwrap(self) -> ToolResult
|
||||||
```
|
```
|
||||||
|
|
||||||
### `CachableMessage` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CachableMessage` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L100" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A wrapper for Message that can be cached.
|
A wrapper for Message that can be cached.
|
||||||
|
|
||||||
|
|
||||||
### `CachablePromptResult` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CachablePromptResult` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L107" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
A wrapper for PromptResult that can be cached.
|
A wrapper for PromptResult that can be cached.
|
||||||
|
|
@ -72,69 +72,69 @@ A wrapper for PromptResult that can be cached.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `get_size` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L114" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `get_size` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L114" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
get_size(self) -> int
|
get_size(self) -> int
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `wrap` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `wrap` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
wrap(cls, value: PromptResult) -> Self
|
wrap(cls, value: PromptResult) -> Self
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `unwrap` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L127" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `unwrap` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L127" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
unwrap(self) -> PromptResult
|
unwrap(self) -> PromptResult
|
||||||
```
|
```
|
||||||
|
|
||||||
### `SharedMethodSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `SharedMethodSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L138" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Shared config for a cache method.
|
Shared config for a cache method.
|
||||||
|
|
||||||
|
|
||||||
### `ListToolsSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L145" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ListToolsSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L145" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration options for Tool-related caching.
|
Configuration options for Tool-related caching.
|
||||||
|
|
||||||
|
|
||||||
### `ListResourcesSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ListResourcesSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L149" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration options for Resource-related caching.
|
Configuration options for Resource-related caching.
|
||||||
|
|
||||||
|
|
||||||
### `ListPromptsSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ListPromptsSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L153" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration options for Prompt-related caching.
|
Configuration options for Prompt-related caching.
|
||||||
|
|
||||||
|
|
||||||
### `CallToolSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L157" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `CallToolSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L157" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration options for Tool-related caching.
|
Configuration options for Tool-related caching.
|
||||||
|
|
||||||
|
|
||||||
### `ReadResourceSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L164" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ReadResourceSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L164" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration options for Resource-related caching.
|
Configuration options for Resource-related caching.
|
||||||
|
|
||||||
|
|
||||||
### `GetPromptSettings` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L168" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `GetPromptSettings` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L168" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Configuration options for Prompt-related caching.
|
Configuration options for Prompt-related caching.
|
||||||
|
|
||||||
|
|
||||||
### `ResponseCachingStatistics` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResponseCachingStatistics` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L172" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
### `ResponseCachingMiddleware` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L181" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `ResponseCachingMiddleware` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L181" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
The response caching middleware offers a simple way to cache responses to mcp methods. The Middleware
|
The response caching middleware offers a simple way to cache responses to mcp methods. The Middleware
|
||||||
|
|
@ -151,7 +151,7 @@ Notes:
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `on_list_tools` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L285" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_tools` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L285" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_tools(self, context: MiddlewareContext[mcp.types.ListToolsRequest], call_next: CallNext[mcp.types.ListToolsRequest, Sequence[Tool]]) -> Sequence[Tool]
|
on_list_tools(self, context: MiddlewareContext[mcp.types.ListToolsRequest], call_next: CallNext[mcp.types.ListToolsRequest, Sequence[Tool]]) -> Sequence[Tool]
|
||||||
|
|
@ -161,7 +161,7 @@ List tools from the cache, if caching is enabled, and the result is in the cache
|
||||||
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
||||||
|
|
||||||
|
|
||||||
#### `on_list_resources` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L324" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_resources` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L324" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_resources(self, context: MiddlewareContext[mcp.types.ListResourcesRequest], call_next: CallNext[mcp.types.ListResourcesRequest, Sequence[Resource]]) -> Sequence[Resource]
|
on_list_resources(self, context: MiddlewareContext[mcp.types.ListResourcesRequest], call_next: CallNext[mcp.types.ListResourcesRequest, Sequence[Resource]]) -> Sequence[Resource]
|
||||||
|
|
@ -171,7 +171,7 @@ List resources from the cache, if caching is enabled, and the result is in the c
|
||||||
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
||||||
|
|
||||||
|
|
||||||
#### `on_list_prompts` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L363" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_prompts` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L363" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_prompts(self, context: MiddlewareContext[mcp.types.ListPromptsRequest], call_next: CallNext[mcp.types.ListPromptsRequest, Sequence[Prompt]]) -> Sequence[Prompt]
|
on_list_prompts(self, context: MiddlewareContext[mcp.types.ListPromptsRequest], call_next: CallNext[mcp.types.ListPromptsRequest, Sequence[Prompt]]) -> Sequence[Prompt]
|
||||||
|
|
@ -181,7 +181,7 @@ List prompts from the cache, if caching is enabled, and the result is in the cac
|
||||||
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
||||||
|
|
||||||
|
|
||||||
#### `on_call_tool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L400" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_call_tool` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L400" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_call_tool(self, context: MiddlewareContext[mcp.types.CallToolRequestParams], call_next: CallNext[mcp.types.CallToolRequestParams, ToolResult]) -> ToolResult
|
on_call_tool(self, context: MiddlewareContext[mcp.types.CallToolRequestParams], call_next: CallNext[mcp.types.CallToolRequestParams, ToolResult]) -> ToolResult
|
||||||
|
|
@ -191,7 +191,7 @@ Call a tool from the cache, if caching is enabled, and the result is in the cach
|
||||||
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
||||||
|
|
||||||
|
|
||||||
#### `on_read_resource` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L433" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_read_resource` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L433" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_read_resource(self, context: MiddlewareContext[mcp.types.ReadResourceRequestParams], call_next: CallNext[mcp.types.ReadResourceRequestParams, ResourceResult]) -> ResourceResult
|
on_read_resource(self, context: MiddlewareContext[mcp.types.ReadResourceRequestParams], call_next: CallNext[mcp.types.ReadResourceRequestParams, ResourceResult]) -> ResourceResult
|
||||||
|
|
@ -201,7 +201,7 @@ Read a resource from the cache, if caching is enabled, and the result is in the
|
||||||
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
||||||
|
|
||||||
|
|
||||||
#### `on_get_prompt` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_get_prompt` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_get_prompt(self, context: MiddlewareContext[mcp.types.GetPromptRequestParams], call_next: CallNext[mcp.types.GetPromptRequestParams, PromptResult]) -> PromptResult
|
on_get_prompt(self, context: MiddlewareContext[mcp.types.GetPromptRequestParams], call_next: CallNext[mcp.types.GetPromptRequestParams, PromptResult]) -> PromptResult
|
||||||
|
|
@ -211,7 +211,7 @@ Get a prompt from the cache, if caching is enabled, and the result is in the cac
|
||||||
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
otherwise call the next middleware and store the result in the cache if caching is enabled.
|
||||||
|
|
||||||
|
|
||||||
#### `statistics` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L499" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `statistics` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/caching.py#L499" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
statistics(self) -> ResponseCachingStatistics
|
statistics(self) -> ResponseCachingStatistics
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Middleware that dereferences $ref in JSON schemas before sending to clients.
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
### `DereferenceRefsMiddleware` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/dereference.py#L15" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
### `DereferenceRefsMiddleware` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/dereference.py#L15" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
|
|
||||||
Dereferences $ref in component schemas before sending to clients.
|
Dereferences $ref in component schemas before sending to clients.
|
||||||
|
|
@ -22,13 +22,13 @@ self-contained. Enabled by default via ``FastMCP(dereference_schemas=True)``.
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
#### `on_list_tools` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/dereference.py#L24" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_tools` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/dereference.py#L24" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_tools(self, context: MiddlewareContext[mt.ListToolsRequest], call_next: CallNext[mt.ListToolsRequest, Sequence[Tool]]) -> Sequence[Tool]
|
on_list_tools(self, context: MiddlewareContext[mt.ListToolsRequest], call_next: CallNext[mt.ListToolsRequest, Sequence[Tool]]) -> Sequence[Tool]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `on_list_resource_templates` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/server/middleware/dereference.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
#### `on_list_resource_templates` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/middleware/dereference.py#L33" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
||||||
|
|
||||||
```python
|
```python
|
||||||
on_list_resource_templates(self, context: MiddlewareContext[mt.ListResourceTemplatesRequest], call_next: CallNext[mt.ListResourceTemplatesRequest, Sequence[ResourceTemplate]]) -> Sequence[ResourceTemplate]
|
on_list_resource_templates(self, context: MiddlewareContext[mt.ListResourceTemplatesRequest], call_next: CallNext[mt.ListResourceTemplatesRequest, Sequence[ResourceTemplate]]) -> Sequence[ResourceTemplate]
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue