A Python FastMCP project that demonstrates how to call various tools from Visual Studio Code, AI Toolkit, and Claude Desktop. Provides flexiblity of being served using stdio or http. Also provides the needed configuration to successfully host on an Azure Python Web App.
| Name | Description | Params |
|---|---|---|
| get_feed_items | Returns, n number of items from the given RSS feed | feed_url, limit (default is 5) |
| search_feed | Searches a given RSS feed for text in the title or summary | feed_url, query |
| find_entries_by_date | Finds RSS entries for a given date | feed_url, date (in a reasonable format) |
From the root of the project, run
.\.venv\Scripts\activate.bat
pip install -r .\requirements.txt
fastmcp dev server.py
The MCP Inspector allows connecting to the FastMCP Server.
- Click Connect
- Navigate to Tools
- Click List Tools
- Click each tool as needed
- Enter valid values for each input
- Click Run Tool
- Observe Structured Content
- Create an Azure web app on Linux and Python runtime stack of at least 3.13
- Add the environment variable SCM_DO_BUILD_DURING_DEPLOYMENT set to true
- Set the startup command to python server.ph
During the first deployment packages are installed during building because of the SCM_DO_BUILD_DURING_DEPLOYMENT flag. Use the Deployment Center to observe the progress within the logs.
Log stream is also an option for monitoring during deployments.
The Python FastMCP server will proxy from its internal host address and port 8000 to port 80 at:
https://AZURE_PYTHON_WEB_APP_NAME.azurewebsites.net/mcp
Add .vscode\mcp.json at the root directory level
{
"servers": {
"RSS Feed MCP Server": {
"url": "http://localhost:8000/mcp",
"type": "http"
}
}
}
Open the mcp.json to toggle Starting, Stopping, or Restarting added MCP Servers.
This configuration also works for AI Toolkit and servers hosted on Azure Web Apps.
{
"servers": {
"RSS Feed MCP Server Azure": {
"url": "https://AZURE_PYTHON_WEB_APP_NAME.azurewebsites.net/mcp",
"type": "http"
}
}
}
Edit %USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json or the equivalent
{
"mcpServers": {
"RSS Feed MCP Server": {
"command": "C:\\PATH_TO\\PYTHON\\Scripts\\uv.exe",
"args": [
"--directory",
"C:\\PATH_TO\\CODE_HOME\\mcp-server-rss",
"run",
"server.py",
"stdio"
]
}
}
}
The stdio flag tells the FastMCP Server to use the Standard Input/Outout protocol for communicating the transport method between client and server.
Claude Desktopmust be exited completely before new settings are applied . For Windows, this might involve right clicking within the Notification Area and selecting "Quit".
Running multiple local MCP Servers might cause port 8000 to be bound to unresolved processes.
From the terminal run
netstat -aon | findstr :8000
Based on the process ID, <PID> (number to the far right of the output) terminate the unresolved process
taskkill /PID <PID> /F
All terms used are copyright to their original authors.