[{'Text': '{"url":"https://github.com/modelcontextprotocol/python-sdk","title":"GitHub - modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients · GitHub","description":"Only classes with properly annotated attributes will be converted to Pydantic models for schema generation and validation. Structured results are automatically validated against the output schema generated from the annotation. This ensures the tool returns well-typed, validated data that clients can easily process. Note: For backward compatibility, unstructured results are also returned. Unstructured results are provided for backward compatibility with previous versions of the MCP specification, and are quirks-compatible with previous versions of FastMCP in the current version of the SDK.","extra_snippets":["Only classes with properly annotated attributes will be converted to Pydantic models for schema generation and validation. Structured results are automatically validated against the output schema generated from the annotation. This ensures the tool returns well-typed, validated data that clients can easily process. Note: For backward compatibility, unstructured results are also returned. Unstructured results are provided for backward compatibility with previous versions of the MCP specification, and are quirks-compatible with previous versions of FastMCP in the current version of the SDK.","The Model Context Protocol allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction. This Python SDK implements the full MCP specification, making it easy to:","The Model Context Protocol (MCP) lets you build servers that expose data and functionality to LLM applications in a secure, standardized way. Think of it like a web API, but specifically designed for LLM interactions.","This README documents v1.x of the MCP Python SDK (the current stable release)."]}'}, {'Text': '{"url":"https://github.com/DazzleML/MCP-Server-Tutorial/blob/main/docs/tutorial/03_tool_registration.md","title":"MCP-Server-Tutorial/docs/tutorial/03_tool_registration.md at main · DazzleML/MCP-Server-Tutorial","description":"In our server.py file, we register the tool discovery handler:","extra_snippets":["A detailed hands-on tutorial for learning Model Context Protocol (MCP) server development with Python. Includes working examples, VSCode debugging setup, tests, and a step-by-step guide covering everything from basic architecture to deployment. Perfect for anyone wanting to build AI-integrated tools and to understand how Claude extensions work.","Tool registration is the foundation of MCP functionality. This chapter explains how tools are defined, registered with the server, and discovered by clients.","This chapter covered tool registration in detail. The next chapter will focus on authentication and security considerations for MCP servers.","In our server.py file, we register the tool discovery handler:"]}'}, {'Text': '{"url":"https://zitniklab.hms.harvard.edu/ToolUniverse/tutorials/addtools/mcp_tool_registration_en.html","title":"MCP Tool Registration Tutorial - Register Local Tools as MCP Tools - ToolUniverse Documentation","description":"# my_mcp_server.py from tooluniverse.mcp_tool_registry import register_mcp_tool, start_mcp_server @register_mcp_tool( tool_type_name=&quot;my_analyzer&quot;, config={ &quot;description&quot;: &quot;Analyzes data and returns results&quot;, &quot;parameter_schema&quot;: { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;data&quot;: {&quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Data to analyze&quot;} }, &quot;required&quot;: [&quot;data&quot;] } }, mcp_config={ &quot;server_name&quot;: &quot;My Analysis Server&quot;, &quot;port&quot;: 8001, &quot;host&quot;: &quot;0.0.0.0&quot; } ) class MyAnalyzer: def run(self, arguments): data = arguments.get(&#x27;data&#x27;, &#x27;&#x27;) return {&quot;result&quot;: f&quot;Analyzed: {data}&quot;, &quot;success&quot;: True} # Start server if __name__ == &quot;__main__&quot;: start_mcp_server()","extra_snippets":["This tutorial demonstrates how to use ToolUniverse’s new functionality to register local tools as MCP tools and automatically load them on other servers.","\\"parameter_schema\\": {...} }, mcp_config={\\"port\\": 8001} ) class BadTool: def process(self, data): # Wrong method name return data · class GoodTool: def run(self, arguments): # Correct method name return {\\"result\\": \\"success\\", \\"success\\": True} python my_mcp_server.py # Should show: \\"✅ Server running on http://localhost:8001\\"","# my_mcp_server.py from tooluniverse.mcp_tool_registry import register_mcp_tool, start_mcp_server @register_mcp_tool( tool_type_name=\\"my_analyzer\\", config={ \\"description\\": \\"Analyzes data and returns results\\", \\"parameter_schema\\": { \\"type\\": \\"object\\", \\"properties\\": { \\"data\\": {\\"type\\": \\"string\\", \\"description\\": \\"Data to analyze\\"} }, \\"required\\": [\\"data\\"] } }, mcp_config={ \\"server_name\\": \\"My Analysis Server\\", \\"port\\": 8001, \\"host\\": \\"0.0.0.0\\" } ) class MyAnalyzer: def run(self, arguments): data = arguments.get(\'data\', \'\') return {\\"result\\": f\\"Analyzed: {data}\\", \\"success\\": True} # Start server if __name__ == \\"__main__\\": start_mcp_server()","# my_mcp_client.py from tooluniverse import ToolUniverse tu = ToolUniverse() tu.load_mcp_tools([\\"http://localhost:8001\\"]) result = tu.tools.mcp_my_analyzer( operation=\\"call_tool\\", tool_name=\\"my_analyzer\\", tool_arguments={\\"data\\": \\"test data\\"} }) print(result)"]}'}, {'Text': '{"url":"https://toolregistry.readthedocs.io/en/latest/usage/integrations/mcp/","title":"MCP Tool Usage Guide - ToolRegistry","description":"from pathlib import Path from toolregistry import ToolRegistry registry = ToolRegistry() # Example transports for registration: transport = &quot;https://mcphub.url/mcp&quot; # mcp streamable http transport = &quot;http://localhost:8000/sse/test_group&quot; # mcp http+sse transport = &quot;ws://localhost:8000/mcp&quot; # websocket transport = &quot;examples/mcp_related/mcp_servers/math_server.py&quot; # Path to mcp server script transport = { &quot;command&quot;: &quot;python&quot;, &quot;args&quot;: [&quot;examples/mcp_related/mcp_servers/math_server.py&quot;], &quot;env&quot;: {}, } # Stdio config dict # Register tools synchronously registry.register_from_mcp(transport) print(registry) # Outputs registered tools","extra_snippets":["We will demonstrate in registration example below. ... Since toolregistry 0.5.0, the MCP integration uses the official mcp SDK (mcp>=1.0.0,<2.0.0) instead of fastmcp. This results in a lighter dependency footprint. The transport parameter now accepts Union[str, Dict[str, Any], Path] — ClientTransport and FastMCP instances are no longer accepted. The public API (register_from_mcp / register_from_mcp_async) remains unchanged.","They’re ideal for avoiding stdio servers, reducing environment clutter, or enabling MCP host sharing. Registered tools can be invoked synchronously using subscript notation access, callable methods, or .run() methods: # Calling a tool using subscript notation result = registry[\\"add\\"](1, 2) print(result) # Output: 3 # Using get_callable add_func = registry.get_callable(\\"add\\") result = add_func(3, 4) print(result) # Output: 7 # Using get_tool and its .run() method add_tool = registry.get_tool(\\"add\\") result = add_tool.run({\\"a\\": 5, \\"b\\": 6}) print(result) # Output: 11","This guide explains how to integrate MCP (Model Context Protocol) with ToolRegistry, enabling registration and invocation of tools from an MCP server.","from pathlib import Path from toolregistry import ToolRegistry registry = ToolRegistry() # Example transports for registration: transport = \\"https://mcphub.url/mcp\\" # mcp streamable http transport = \\"http://localhost:8000/sse/test_group\\" # mcp http+sse transport = \\"ws://localhost:8000/mcp\\" # websocket transport = \\"examples/mcp_related/mcp_servers/math_server.py\\" # Path to mcp server script transport = { \\"command\\": \\"python\\", \\"args\\": [\\"examples/mcp_related/mcp_servers/math_server.py\\"], \\"env\\": {}, } # Stdio config dict # Register tools synchronously registry.register_from_mcp(transport) print(registry) # Outputs registered tools"]}'}, {'Text': '{"url":"https://deepwiki.com/modelcontextprotocol/python-sdk/2.2-tool-system","title":"Tool System | modelcontextprotocol/python-sdk | DeepWiki","description":"Tools are defined using the @mcp.tool() decorator on async or sync functions. The decorator automatically registers the function with the server and generates a JSON schema from the function&#x27;s type hints.","extra_snippets":["Tools are defined using the @mcp.tool() decorator on async or sync functions. The decorator automatically registers the function with the server and generates a JSON schema from the function\'s type hints.","Sources: src/mcp/server/lowlevel/server.py430-490 README.md320-373 · For comparison, the low-level Server class uses explicit handler registration instead of decorators:","Tools in MCP allow LLMs to take actions through your server. Unlike resources which provide read-only data, tools are expected to perform computation and have side effects.","Tools can receive a Context object to access MCP capabilities like logging, progress reporting, and resource reading."]}'}, {'Text': '{"url":"https://github.com/ARadRareness/mcp-registry","title":"GitHub - ARadRareness/mcp-registry: A central registry and HTTP interface for coordinating Model Context Protocol (MCP) servers.","description":"from fastmcp_http.server import FastMCPHttpServer mcp = FastMCPHttpServer(&quot;MyServer&quot;, description=&quot;My MCP Server&quot;) @mcp.tool() def my_tool(text: str) -&gt; str: return f&quot;Processed: {text}&quot; if __name__ == &quot;__main__&quot;: mcp.run_http() from fastmcp_http.client import FastMCPHttpClient def main(): # Connect to the registry server client = FastMCPHttpClient(&quot;http://127.0.0.1:31337&quot;) servers = client.list_servers() print(servers) tools = client.list_tools() print(tools) result = client.call_tool(&quot;my_tool&quot;, {&quot;text&quot;: &quot;Hello, World!&quot;}) print(result) if __name__ == &quot;__main__&quot;: main()","extra_snippets":["MCP Registry is a server solution that manages and coordinates multiple MCP (Model Context Protocol) servers. It provides: ... FastMCP-HTTP is a Python package that provides an HTTP REST client-server solution for MCP.","It handles server registration, health monitoring, and provides a unified interface to access tools across all connected servers. The MCP Explorer provides a graphical user interface for interacting with MCP servers and their tools.","The MCP Registry Server acts as a central coordinator for multiple MCP servers.","from fastmcp_http.server import FastMCPHttpServer mcp = FastMCPHttpServer(\\"MyServer\\", description=\\"My MCP Server\\") @mcp.tool() def my_tool(text: str) -> str: return f\\"Processed: {text}\\" if __name__ == \\"__main__\\": mcp.run_http() from fastmcp_http.client import FastMCPHttpClient def main(): # Connect to the registry server client = FastMCPHttpClient(\\"http://127.0.0.1:31337\\") servers = client.list_servers() print(servers) tools = client.list_tools() print(tools) result = client.call_tool(\\"my_tool\\", {\\"text\\": \\"Hello, World!\\"}) print(result) if __name__ == \\"__main__\\": main()"]}'}, {'Text': '{"url":"https://pypi.org/project/mcp-registry/","title":"mcp-registry · PyPI","description":"Problem: When you have a large ... Solution: <strong>MCP Registry lets you run a compound server that includes only specific servers and tools from your main configuration, without creating separate config files</strong>....","extra_snippets":["This test creates a temporary server configuration, starts a simple tool server, and makes tool calls through the aggregator. The script automatically uses the example server from the python-sdk submodule. MCP Registry provides a dedicated command for testing individual tools:","MCP Registry serves as both a command-line tool for configuration management and a Python library for programmatic access to your MCP servers.","Problem: Managing MCP server configurations typically requires manual JSON editing, which is error-prone and tedious. Solution: MCP Registry provides an intuitive CLI interface to add, remove, and edit server configurations without directly editing JSON files.","Problem: When you have a large configuration with many MCP servers and tools, there\'s no easy way to expose only a subset without creating and maintaining multiple configuration files. Solution: MCP Registry lets you run a compound server that includes only specific servers and tools from your main configuration, without creating separate config files."]}'}, {'Text': '{"url":"https://mcpcat.io/guides/adding-custom-tools-mcp-server-python/","title":"Add Custom Tools to Python MCP Servers - Complete Guide | MCPcat","description":"Learn how to extend your Python MCP server with custom tools using FastMCP decorators and the standard MCP SDK for AI-powered applications | MCPcat","extra_snippets":["This approach automatically extracts several key pieces of information from your function. The function name becomes the tool\'s identifier in the MCP protocol. The docstring transforms into the tool\'s description, helping AI systems understand when and how to use it.","Tools in MCP servers expose Python functions as executable operations for AI systems.","The @mcp.tool() decorator handles all the complexity of protocol compliance, schema generation, and validation automatically.","# Wrong - missing type hints @mcp.tool() def process_data(data): return data.upper() # Correct - fully typed @mcp.tool() def process_data(data: str) -> str: return data.upper() ... Even when tools register correctly, some clients may not immediately recognize them."]}'}, {'Text': '{"url":"https://modelcontextprotocol.io/docs/learn/architecture","title":"Architecture overview - Model Context Protocol","description":"<strong>The AI application fetches available tools from all connected MCP servers and combines them into a unified tool registry that the language model can access</strong>. This allows the LLM to understand what actions it can perform and automatically generates ...","extra_snippets":["The AI application fetches available tools from all connected MCP servers and combines them into a unified tool registry that the language model can access. This allows the LLM to understand what actions it can perform and automatically generates the appropriate tool calls during conversations. ... # Pseudo-code using MCP Python SDK patterns available_tools = [] for session in app.mcp_server_sessions(): tools_response = await session.list_tools() available_tools.extend(tools_response.tools) conversation.register_available_tools(available_tools)","Real-time Collaboration: Enables responsive AI applications that can adapt to changing contexts This notification pattern extends beyond tools to other MCP primitives, enabling comprehensive real-time synchronization between clients and servers. When the AI application receives a notification about changed tools, it immediately refreshes its tool registry and updates the LLM’s available capabilities.","Use this file to discover all available pages before exploring further.This overview of the Model Context Protocol (MCP) discusses its scope and core concepts, and provides an example demonstrating each core concept. Because MCP SDKs abstract away many concerns, most developers will likely find the data layer protocol section to be the most useful.","These primitives allow MCP server authors to build richer interactions. Sampling: Allows servers to request language model completions from the client’s AI application. This is useful when server authors want access to a language model, but want to stay model-independent and not include a language model SDK in their MCP server."]}'}, {'Text': '{"url":"https://pypi.org/project/mcp/","title":"MCP Python SDK","description":"Low-Level Server -- direct handler registration for advanced use cases · Protocol Features -- MCP primitives, server capabilities","extra_snippets":["The following attestation bundles were made for mcp-1.27.1.tar.gz: Publisher: publish-pypi.yml on modelcontextprotocol/python-sdk Attestations: Values shown here reflect the state when the release was signed and may no longer be current.","The following attestation bundles were made for mcp-1.27.1-py3-none-any.whl: Publisher: publish-pypi.yml on modelcontextprotocol/python-sdk Attestations: Values shown here reflect the state when the release was signed and may no longer be current.","We recommend using uv to manage your Python projects. If you haven\'t created a uv-managed project yet, create one: ... \\"\\"\\" FastMCP quickstart example. Run from the repository root: uv run examples/snippets/servers/fastmcp_quickstart.py \\"\\"\\" from mcp.server.fastmcp import FastMCP # Create an MCP server mcp = FastMCP(\\"Demo\\", json_response=True) # Add an addition tool @mcp.tool() def add(a: int, b: int) -> int: \\"\\"\\"Add two numbers\\"\\"\\" return a + b # Add a dynamic greeting resource @mcp.resource(\\"greeting://{name}\\") def get_greeting(name: str) -> str: \\"\\"\\"Get a personalized greeting\\"\\"\\" return f\\"Hello,","Low-Level Server -- direct handler registration for advanced use cases · Protocol Features -- MCP primitives, server capabilities"]}'}, {'Text': '{"url":"https://medium.com/data-engineering-with-dremio/building-a-basic-mcp-server-with-python-4c34c41031ed","title":"Building a Basic MCP Server with Python | by Alex Merced | Data, Analytics & AI with Dremio | Medium","description":"Now, whenever the server runs, it automatically registers all tools via the @mcp.tool() decorators.","extra_snippets":["Not using Claude? You can write your own MCP-compatible client using the SDK’s ClientSession interface.","An MCP tool is a Python function you register with your MCP server that the AI can call when it needs to take action — like reading a file, querying an API, or performing a calculation.","To register a tool, you decorate the function with @mcp.tool().","Now, whenever the server runs, it automatically registers all tools via the @mcp.tool() decorators."]}'}, {'Text': '{"url":"https://pypi.org/project/toolregistry/","title":"toolregistry · PyPI","description":"# transport can be a URL string, script path, transport instance, or MCP instance. transport = &quot;https://mcphub.url/mcp&quot; # Streamable HTTP MCP transport = &quot;http://localhost:8000/sse/test_group&quot; # Legacy HTTP+SSE transport = &quot;examples/mcp_related/mcp_servers/math_server.py&quot; # Local path transport = { &quot;mcpServers&quot;: { &quot;make_mcp&quot;: { &quot;command&quot;: f&quot;{Path.home()}/mambaforge/envs/toolregistry_dev/bin/python&quot;, &quot;args&quot;: [ f&quot;{Path.home()}/projects/toolregistry/examples/mcp_related/mcp_servers/math_server.py&quot; ], &quot;env&quot;: {}, } } } # MCP configuration dictionary example transport = FastMCP(name=&quot;MyFastMCP&quot;) # FastMCP instance transport = StreamableHttpTransport(url=&quot;https://mcphub.example.com/mcp&quot;, headers={&quot;Authorization&quot;: &quot;Bearer token&quot;}) # Transport instance with custom headers registry.register_from_mcp(transport) # Get all tools&#x27; JSON, including MCP tools tools_json = registry.get_tools_json()","extra_snippets":["A Python library for managing and executing tools in a structured way. ... Support multiple MCP transport methods: STDIO, streamable HTTP, SSE, WebSocket, FastMCP instance, etc.","Users must update their implementations to use the new methods: ToolRegistry.register_from_class, ToolRegistry.register_from_mcp, and ToolRegistry.register_from_openapi. Please ensure your codebase is compatible with this update for uninterrupted functionality. Install the core package (requires Python >= 3.8):","# transport can be a URL string, script path, transport instance, or MCP instance. transport = \\"https://mcphub.url/mcp\\" # Streamable HTTP MCP transport = \\"http://localhost:8000/sse/test_group\\" # Legacy HTTP+SSE transport = \\"examples/mcp_related/mcp_servers/math_server.py\\" # Local path transport = { \\"mcpServers\\": { \\"make_mcp\\": { \\"command\\": f\\"{Path.home()}/mambaforge/envs/toolregistry_dev/bin/python\\", \\"args\\": [ f\\"{Path.home()}/projects/toolregistry/examples/mcp_related/mcp_servers/math_server.py\\" ], \\"env\\": {}, } } } # MCP configuration dictionary example transport = FastMCP(name=\\"MyFastMCP\\") # FastMCP instance transport = StreamableHttpTransport(url=\\"https://mcphub.example.com/mcp\\", headers={\\"Authorization\\": \\"Bearer token\\"}) # Transport instance with custom headers registry.register_from_mcp(transport) # Get all tools\' JSON, including MCP tools tools_json = registry.get_tools_json()","from toolregistry import ToolRegistry registry = ToolRegistry() @registry.register def add(a: float, b: float) -> float: \\"\\"\\"Add two numbers together.\\"\\"\\" return a + b available_tools = registry.get_available_tools() print(available_tools) # [\'add\'] add_func = registry.get_callable(\'add\') print(type(add_func)) # <class \'function\'> add_result = add_func(1, 2) print(add_result) # 3 add_func = registry[\'add\'] print(type(add_func)) # <class \'function\'> add_result = add_func(4, 5) print(add_result) # 9 · For more usage examples, please refer to Documentation - Usage · The ToolRegistry provides first-class support for MCP (Model Context Protocol) tools with multiple transport options:"]}'}, {'Text': '{"url":"https://modelcontextprotocol.info/docs/concepts/tools/","title":"Tools – Model Context Protocol （MCP）","description":"Tools in MCP <strong>allow servers to expose executable functions that can be invoked by clients and used by LLMs to perform actions</strong>.","extra_snippets":["Building MCP clients-Python · Building MCP clients-Node.js · Writing Effective Tools for Agents: Complete MCP Development Guide · MCP Server Ecosystem: From Proof-of-Concept to Production · Clients · MCP FAQ: Expert Answers to Real-World Questions · MCP Best Practices: Architecture & Implementation Guide · SDK · Java SDK · Overview · MCP Server · MCP Client · Build an MCP Client (Core) Extensions · Tools · MCP Registry ·","Tools are a powerful primitive in the Model Context Protocol (MCP) that enable servers to expose executable functionality to clients.","Tools in MCP allow servers to expose executable functions that can be invoked by clients and used by LLMs to perform actions.","Tool errors should be reported within the result object, not as MCP protocol-level errors. This allows the LLM to see and potentially handle the error."]}'}, {'Text': '{"url":"https://geminicli.com/docs/tools/mcp-server/","title":"MCP servers with Gemini CLI | Gemini CLI","description":"<strong>Fetches tool definitions from each server using the MCP protocol</strong> · Sanitizes and validates tool schemas for compatibility with the Gemini API · Registers tools in the global tool registry with conflict resolution","extra_snippets":["Fetches tool definitions from each server using the MCP protocol · Sanitizes and validates tool schemas for compatibility with the Gemini API · Registers tools in the global tool registry with conflict resolution","Fetches and registers resources if the server exposes any · Section titled “Execution layer (mcp-tool.ts)” · Each discovered MCP tool is wrapped in a DiscoveredMCPTool instance that: Handles confirmation logic based on server trust settings and user preferences · Manages tool execution by calling the MCP server with proper parameters · Processes responses for both the LLM context and user display ... Some MCP servers expose contextual “resources” in addition to the tools and prompts.","Sandbox compatibility: When using sandboxing, ensure MCP servers are available within the sandbox environment · Private data: Using broadly scoped personal access tokens can lead to information leakage between repositories. Section titled “Performance and resource management” · Connection persistence: The CLI maintains persistent connections to servers that successfully register tools","import { McpServer } from \'@modelcontextprotocol/sdk/server/mcp.js\';"]}'}, {'Text': '{"url":"https://docs.litellm.ai/docs/mcp","title":"MCP Overview | liteLLM","description":"This video demonstrates how you can onboard an MCP server to LiteLLM Proxy, use it and set access controls. LiteLLM Python SDK acts as a MCP bridge to utilize MCP tools with all LiteLLM supported models.","extra_snippets":["📅 LiteLLM May Town Hall — Monday, May 18 at 7:30 AM PST. Hear product updates, roadmap, and Q&A. Register now → ... LiteLLM Proxy provides an MCP Gateway that allows you to use a fixed endpoint for all MCP tools and control MCP access by Key, Team.","When you create an MCP server in the UI and set Authentication: OAuth, LiteLLM will locate the provider metadata, dynamically register a client, and perform PKCE-based authorization without you providing any additional details. ... Provide explicit client credentials – If the MCP provider does not offer dynamic client registration or you prefer to manage the client yourself, fill in client_id, client_secret, and the desired scopes.","Resource Discovery: The client fetches MCP resource metadata from LiteLLM’s .well-known/oauth-protected-resource endpoint to understand scopes and capabilities. Authorization Server Discovery: The client retrieves the OAuth server metadata (token endpoint, authorization endpoint, supported PKCE methods) through LiteLLM’s .well-known/oauth-authorization-server endpoint. Dynamic Client Registration: The client registers through LiteLLM, which forwards the request to the authorization server (RFC 7591).","This video demonstrates how you can onboard an MCP server to LiteLLM Proxy, use it and set access controls. LiteLLM Python SDK acts as a MCP bridge to utilize MCP tools with all LiteLLM supported models."]}'}, {'Text': '{"url":"https://modelcontextprotocol.info/tools/registry/","title":"MCP Registry","description":"🎯 Single Source of Truth: Authoritative metadata repository for publicly-available MCP servers · ⚖️ Vendor Neutrality: No preferential treatment for specific servers or organizations · 🔒 Industry Security Standards: Leverage existing package registries for security","extra_snippets":["It serves as the authoritative repository for publicly-available MCP servers. Registry is Live! 🎉 The official MCP Registry launched in preview on September 8, 2025.","A hosted registry at registry.modelcontextprotocol.io following the MCP registry spec.","MCP registries are metaregistries.","🎯 Single Source of Truth: Authoritative metadata repository for publicly-available MCP servers · ⚖️ Vendor Neutrality: No preferential treatment for specific servers or organizations · 🔒 Industry Security Standards: Leverage existing package registries for security"]}'}, {'Text': '{"mutated_by_goggles":false,"url":"https://www.youtube.com/watch?v=YNe5aYutEPU","title":"Build Your Own MCP Server: Practical Guide with Python SDK and ...","description":"In this video, we finally take the plunge with Build Your Own MCP Server: Practical Guide with Python SDK and Cursor IDE and show how to create a real workin...","age":"April 8, 2025","thumbnail_url":"https://imgs.search.brave.com/2ffwahq1zPSaNXCWBfO6Jjb3XaWAO216cgtqlmD8xoU/rs:fit:200:200:1:0/g:ce/aHR0cHM6Ly9pLnl0/aW1nLmNvbS92aS9Z/TmU1YVl1dEVQVS9t/YXhyZXNkZWZhdWx0/LmpwZw","duration":"13:27","creator":"GrabDuck!","publisher":"YouTube"}'}, {'Text': '{"mutated_by_goggles":false,"url":"https://www.youtube.com/watch?v=-WogqfxWBbM","title":"Building MCP Server and Client using Python SDK: Step-by-Step ...","description":"We discuss on how to build an MCP server and client which support tools, resources and prompts.Reference: https://modelcontextprotocol.io/introductionCode: h","age":"March 22, 2025","thumbnail_url":"https://imgs.search.brave.com/1oKkUeYp2GSNi9XHEsobvRRh5TOCqsYCnQW11rITwBo/rs:fit:200:200:1:0/g:ce/aHR0cHM6Ly9pLnl0/aW1nLmNvbS92aS8t/V29ncWZ4V0JiTS9t/YXhyZXNkZWZhdWx0/LmpwZz9zcXA9LW9h/eW13RW1DSUFLRU5B/RjhxdUtxUU1hOEFF/Qi1BSC1DWUFDMEFX/S0Fnd0lBQkFCR0N3/Z1ppaHlNQTg9JmFt/cDtycz1BT240Q0xB/YjBhclZtZmFTUDlM/VDM4ZUh2RjdyZ1hS/Ykln","duration":"20:47","creator":"Learn With Yash Agrawal","publisher":"YouTube"}'}, {'Text': '{"mutated_by_goggles":false,"url":"https://www.youtube.com/watch?v=Ek8JHgZtmcI","title":"Learn MCP Servers with Python (EASY) - YouTube","description":"In this video, I explain what an MCP server is, how it works and how to create an MCP Server that we will use with Claude Desktop and Claude Code.🔗 Links---...","age":"March 13, 2025","thumbnail_url":"https://imgs.search.brave.com/POXULCcs6MBGbf05UDISHusiU6jD374RJ4E6NSUq8_E/rs:fit:200:200:1:0/g:ce/aHR0cHM6Ly9pLnl0/aW1nLmNvbS92aS9F/azhKSGdadG1jSS9t/YXhyZXNkZWZhdWx0/LmpwZw","duration":"39:25","creator":"Alejandro AO","publisher":"YouTube"}'}, {'Text': '{"mutated_by_goggles":false,"url":"https://www.youtube.com/watch?v=j5f2EQf5hkw","title":"Build ANYTHING With an Advanced MCP Server (Python, Authentication, ...","description":"In this video, I\'ll give you a full tutorial on building advanced servers in Python. That means we\'re going to go beyond the basics. I\'m not just going to sh...","age":"July 25, 2025","thumbnail_url":"https://imgs.search.brave.com/MUwwark8MkjQmwxhlX_KKVzdmFm1wPPoykaICgQb3wI/rs:fit:200:200:1:0/g:ce/aHR0cHM6Ly9pLnl0/aW1nLmNvbS92aS9q/NWYyRVFmNWhrdy9t/YXhyZXNkZWZhdWx0/LmpwZw","duration":"01:09:47","creator":"Tech With Tim","publisher":"YouTube"}'}, {'Text': '{"mutated_by_goggles":false,"url":"https://www.youtube.com/watch?v=8g0z3DNi_fU","title":"Set Up MCP Server In Python | Step-By-Step Tutorial - YouTube","description":"MCP is an open-source framework that connects your favorite AI assistants to real-world data and tools. In this tutorial, I\'ll walk you through building your...","age":"March 30, 2025","thumbnail_url":"https://imgs.search.brave.com/v5uu-kabjByx7tcgJJ4WpeqNzfZlW5bVYHcdU1PNx2s/rs:fit:200:200:1:0/g:ce/aHR0cHM6Ly9pLnl0/aW1nLmNvbS92aS84/ZzB6M0ROaV9mVS9t/YXhyZXNkZWZhdWx0/LmpwZw"}'}, {'Text': '{"mutated_by_goggles":false,"url":"https://www.youtube.com/watch?v=_mUuhOwv9PY","title":"Python + MCP: Building MCP servers with FastMCP - YouTube","description":"In the intro session of our Python + MCP series, we dive into the hottest technology of 2025: MCP (Model Context Protocol). This open protocol makes it easy ...","age":"December 16, 2025","thumbnail_url":"https://imgs.search.brave.com/pTaypy6aZRsYIS47EjnFSEnTIcxk6uQgIYQCkWj4TBU/rs:fit:200:200:1:0/g:ce/aHR0cHM6Ly9pLnl0/aW1nLmNvbS92aS9f/bVV1aE93djlQWS9t/YXhyZXNkZWZhdWx0/LmpwZw","duration":"01:03:18","creator":"Microsoft Reactor","publisher":"YouTube"}'}]