My MCP Servers
Open-source Model Context Protocol servers I built & maintainPHP
Shim MCP
Turns a WordPress site into an MCP server. WP-CLI is the transport, not a tool: no port, no token, no HTTP. Streamable HTTP is there too.
TypeScript
Amazon.in MCP
Lets AI assistants shop on Amazon.in: ranked search, full product detail, and Keepa price-history links. No API keys, runs locally over stdio.
TypeScript
Freedcamp MCP
Full read + write access to Freedcamp across every project: tasks, projects, and comments. 12 bulk-capable tools over stdio + HTTP.
Open Source Contributions
PRs to the projects I use, merged and in-flightMerged 40
mealie-recipes/mealie #8213
Merged
fix: ignore blank Paprika ingredient lines
gotify/server #1041
Merged
fix: reject password changes when local auth is disabled
umami-software/umami #4490
Merged
Keep typed page paths selectable in reports
urfave/cli #2421
Merged
Show inherited persistent flags in child help
go-jose/go-jose #285
Merged
Reject typed nil at Verify time
immich-app/immich #31074
Merged
fix(server): never unlink an untracked-file path that an asset now references
henrygd/beszel #2277
Merged
fix(hub): don't read the SSH client after it is closed
karakeep-app/karakeep #3040
Merged
fix(mobile): sort lists by name, as the web does
henrygd/beszel #2275
Merged
Warn when critical ATA SMART attributes are nonzero
navidrome/navidrome #5998
Merged
fix(subsonic): report AAC streams as audio/aac instead of audio/mp4
henrygd/beszel #2274
Merged
fix(install): generate /etc/machine-id on systems without /proc
henrygd/beszel #2272
Merged
fix(agent): don't read host CPU and memory totals from a Docker VM
thomiceli/opengist #803
Merged
Fix overlapping headers in narrow embeds
AnalogJ/scrutiny #1067
Merged
fix(collector): honor a device type set in the config file
homeassistant-ai/ha-mcp #2305
Merged
fix: allow custom dashboard screenshot dimensions
nicolargo/glances #3686
Merged
fix(WebUI): Make container IO and network columns sortable
gtsteffaniak/filebrowser #2857
Merged
fix(preview): stop opening PDFs in the text editor
gtsteffaniak/filebrowser #2856
Merged
fix(resources): return 400 when path or source is missing
immich-app/immich #31075
Merged
fix(ml): read CLIP model configs as UTF-8
immich-app/immich #30851
Merged
fix(server): kill pg_dump when a backup fails so it stops holding table locks
netalertx/NetAlertX #1761
Merged
fix(mikrotik): continue scans past leases without MAC addresses
henrygd/beszel #2267
Merged
fix(agent): report allocated swap as used
nicolargo/glances #3685
Merged
fix(percpu): report the guest nice CPU value
mealie-recipes/mealie #8170
Merged
fix: registration with seed data returns a 500
nicolargo/glances #3671
Merged
fix(plugins): init containers, vms and smart stats as a list
netalertx/NetAlertX #1756
Merged
feat(ntfy): allow more than one custom header
henrygd/beszel #2245
Merged
fix(agent): round load average to two decimals
AnalogJ/scrutiny #1062
Merged
fix(frontend): hide the host header when a host has no visible drives
taylorwilsdon/google_workspace_mcp #1028
Merged
fix(attachments): expire stored files by mtime so a restart stops orphaning them
netalertx/NetAlertX #1695
Merged
Add custom header and URL query string options to the ntfy publisher
AnalogJ/scrutiny #1018
Merged
fix(frontend): sort all columns on drive details page
Beingpax/VoiceInk #855
Merged
fix: Unicode-aware word boundaries in word replacements
immich-app/immich #29354
Merged
fix(server): dissolve stack when its non-primary assets are deleted
miniflux/v2 #4428
Merged
fix(css): add line-height to headings to prevent overlap when they wrap
filebrowser/filebrowser #6010
Merged
fix(preview): keep the EPUB table-of-contents button clear of the header
czlonkowski/n8n-mcp #794
Merged
fix(diff-engine): accept undefined as property-removal marker
punkpeye/awesome-mcp-servers #6605
Merged
Add justadityaraj/amazon-in-mcp to E-Commerce
taylorwilsdon/google_workspace_mcp #799
Merged
fix(gcalendar): include creator and organizer in get_events detailed output
umami-software/umami #3095
Merged
Update hi-IN.json
ActivityWatch/aw-watcher-web #135
Merged
docs(README): updated the broken Chrome extension link