Merge branch 'main' into claude/fix-workflow-link-b4Vrn

This commit is contained in:
Bill Easton 2026-01-31 15:23:11 -06:00 committed by GitHub
commit 82c9409006
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 11 additions and 11 deletions

View file

@ -11,7 +11,7 @@ Control which tools, resources and prompts MCP clients can view and execute on y
## How it Works
Exploiting FastMCP's [Middleware][fastmcp-middleare], the Eunomia middleware intercepts all MCP requests to your server and automatically maps MCP methods to authorization checks.
Exploiting FastMCP's [Middleware][fastmcp-middleware], the Eunomia middleware intercepts all MCP requests to your server and automatically maps MCP methods to authorization checks.
### Listing Operations
@ -126,4 +126,4 @@ The middleware will now intercept all MCP requests and check them against your p
[eunomia-github]: https://github.com/whataboutyou-ai/eunomia
[eunomia-mcp-github]: https://github.com/whataboutyou-ai/eunomia/tree/main/pkgs/extensions/mcp
[fastmcp-middleare]: /servers/middleware
[fastmcp-middleware]: /servers/middleware

View file

@ -11,7 +11,7 @@ Control which tools, resources and prompts MCP clients can view and execute on y
## How it Works
Exploiting FastMCP's [Middleware][fastmcp-middleare], the Eunomia middleware intercepts all MCP requests to your server and automatically maps MCP methods to authorization checks.
Exploiting FastMCP's [Middleware][fastmcp-middleware], the Eunomia middleware intercepts all MCP requests to your server and automatically maps MCP methods to authorization checks.
### Listing Operations
@ -126,4 +126,4 @@ The middleware will now intercept all MCP requests and check them against your p
[eunomia-github]: https://github.com/whataboutyou-ai/eunomia
[eunomia-mcp-github]: https://github.com/whataboutyou-ai/eunomia/tree/main/pkgs/extensions/mcp
[fastmcp-middleare]: /servers/middleware
[fastmcp-middleware]: /servers/middleware

View file

@ -13,7 +13,7 @@ This example demonstrates a FastMCP server that provides tools and resources for
### Tools (Actions)
- **post**: Create posts with rich features (text, images, quotes, replies, links, mentions)
- **create_thread**: Post multi-part threads with automatic linking
- **create_thread**: Post multipart threads with automatic linking
- **search**: Search for posts by query
- **follow**: Follow users by handle
- **like**: Like posts by URI

View file

@ -39,7 +39,7 @@ class LoggingAnthropicHandler(AnthropicSamplingHandler):
class SentimentAnalysis(BaseModel):
sentiment: str # "positive", "negative", or "neutral"
confidence: float # 0.0 to 1.0
keywords: list[str] # Key words that influenced the analysis
keywords: list[str] # Keywords that influenced the analysis
explanation: str # Brief explanation of the analysis

View file

@ -58,7 +58,7 @@ def get_current_time() -> str:
def roll_dice(sides: int = 6) -> str:
"""Roll a dice with the specified number of sides."""
"""Roll a die with the specified number of sides."""
result = random.randint(1, sides)
console.print(f" [bold magenta]TOOL[/] roll_dice({sides}) = {result}")
return str(result)

View file

@ -29,7 +29,7 @@ class MCPConfigTransport(ClientTransport):
2. If the MCPConfig contains multiple servers, it creates a composite client by mounting
all servers on a single FastMCP instance, with each server's name, by default, used as its mounting prefix.
In the multi-server case, tools are accessible with the prefix pattern `{server_name}_{tool_name}`
In the multiserver case, tools are accessible with the prefix pattern `{server_name}_{tool_name}`
and resources with the pattern `protocol://{server_name}/path/to/resource`.
This is particularly useful for creating clients that need to interact with multiple specialized

View file

@ -167,7 +167,7 @@ LOGO_ASCII_2 = (
"\x1b[38;2;0;120;255m█\x1b[38;2;0;117;255m▀\x1b[38;2;0;114;255m▀\x1b[39m"
).strip()
# Prints the below in a blue gradient - sylized F
# Prints the below in a blue gradient - stylized F
# ▄▀▀▀
# █▀▀
# ▀

View file

@ -93,7 +93,7 @@ async def test_call_tool_with_meta():
assert context.request_context is not None
meta = context.request_context.meta
# Return the meta data as a dict
# Return the metadata as a dict
if meta is not None:
return {
"has_meta": True,

View file

@ -47,7 +47,7 @@ class TestSyncToolConcurrency:
Uses a threading barrier to prove concurrent execution: all calls must
reach the barrier simultaneously for any to proceed. If they ran
sequentially, only one would reach the barrier and it would timeout.
sequentially, only one would reach the barrier and it would time out.
"""
num_calls = 3
# Barrier requires all threads to arrive before any proceed