A collection of Model Context Protocol (MCP) services hosted on jaanmcps.ddns.net via IIS.
| Item | Value |
|---|---|
| Host | https://jaanmcps.ddns.net |
| Transport | Streamable HTTP |
| SSL | Let's Encrypt (auto-renews) |
| IIS Deployment | C:\inetpub\wwwroot\mcps\<service-name> |
AI-powered pixel art and sprite generation using Ollama (local LLMs).
| Item | Value |
|---|---|
| Endpoint | https://jaanmcps.ddns.net/mcps/pixel-art-generator/mcp/mcp |
| Type | streamable-http |
| Docs | https://jaanmcps.ddns.net/mcps/pixel-art-generator/docs |
| Source | C:\Users\justi\OneDrive\Desktop\mcps\PixelArtGenerator |
| Repo | tinyioda/PixelArtGenerator (private) |
| Stack | Python 3.11, FastAPI, Ollama, MCP SDK |
Tools:
| Tool | Description |
|---|---|
generate_pixel_art |
AI-generate sprites from text prompts (supports JRPG/FF6 presets) |
create_sprite |
Create from explicit pixel data |
edit_sprite |
Modify regions of existing sprites |
convert_to_pixel_art |
Convert any image to pixel art |
export_sprite_sheet |
Export in different formats/scales |
MCP Client Config:
{
"pixel-art-generator": {
"type": "streamable-http",
"url": "https://jaanmcps.ddns.net/mcps/pixel-art-generator/mcp/mcp"
}
}
Build your MCP server (any language/framework). It must expose a Streamable HTTP or SSE transport endpoint.
# Copy built app to deployment folder
$name = "my-new-mcp"
robocopy .\source "C:\inetpub\wwwroot\mcps\$name" /E /XD .git __pycache__
# Create app pool and IIS sub-application
appcmd add apppool /name:"mcps-$name"
appcmd set apppool "mcps-$name" /processModel.identityType:LocalSystem
appcmd add app /site.name:"JaanMCPs" /path:/mcps/$name /physicalPath:"C:\inetpub\wwwroot\mcps\$name" /applicationPool:"mcps-$name"
Each service needs a web.config in its deployment folder with HttpPlatformHandler configured for its runtime (Python, Node, .NET, etc.).
Example for Python/FastAPI:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified"
responseBufferLimit="0" />
</handlers>
<httpPlatform processPath="C:\Program Files\Python311\python.exe"
arguments="run_iis.py"
startupTimeLimit="120"
requestTimeout="00:05:00">
<environmentVariables>
<environmentVariable name="APP_PREFIX" value="/mcps/my-new-mcp" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
Add to ~/.copilot/mcp.json and/or ~/.vscode/mcp.json:
{
"my-new-mcp": {
"type": "streamable-http",
"url": "https://jaanmcps.ddns.net/mcps/my-new-mcp/mcp/mcp"
}
}
curl -sk "https://jaanmcps.ddns.net/mcps/my-new-mcp/mcp/mcp" -X POST `
-H "Content-Type: application/json" `
-H "Accept: application/json, text/event-stream" `
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
jaanmcps.ddns.net (IIS - JaanMCPs site)
├── /mcps/pixel-art-generator → C:\inetpub\wwwroot\mcps\pixel-art-generator
├── /mcps/<future-service> → C:\inetpub\wwwroot\mcps\<future-service>
└── ...
Each service runs in its own IIS application pool (isolated process). The gateway handles SSL termination and host-header routing.