42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from fastmcp import FastMCP
|
|
from fastapi import FastAPI
|
|
import inspect
|
|
|
|
# Create a FastAPI app
|
|
app = FastAPI()
|
|
|
|
# Try different ways to create a FastMCP instance
|
|
print("Trying different ways to create a FastMCP instance:")
|
|
|
|
# Method 1: Create FastMCP first, then get the HTTP app
|
|
try:
|
|
print("\nMethod 1: Create FastMCP first, then get the HTTP app")
|
|
mcp = FastMCP(name="example", version="1.0.0")
|
|
http_app = mcp.http_app()
|
|
print("Success!")
|
|
print(f"Type of http_app: {type(http_app)}")
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
|
|
# Method 2: Create FastMCP with app parameter
|
|
try:
|
|
print("\nMethod 2: Create FastMCP with app parameter")
|
|
mcp = FastMCP(name="example", version="1.0.0", app=app)
|
|
print("Success!")
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
|
|
# Method 3: Create FastMCP and mount to existing app
|
|
try:
|
|
print("\nMethod 3: Create FastMCP and mount to existing app")
|
|
mcp = FastMCP(name="example", version="1.0.0")
|
|
mcp.mount(app)
|
|
print("Success!")
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
|
|
# Print all methods of FastMCP
|
|
print("\nAll methods of FastMCP:")
|
|
for name, method in inspect.getmembers(FastMCP, predicate=inspect.isfunction):
|
|
if not name.startswith("_"):
|
|
print(f"- {name}{inspect.signature(method)}") |