Place the module directory under one of the paths in $env:PSModulePath so it can be found by name, or import by path: Import-Module ./MyModule/MyModule.psd1
To publish to the PowerShell Gallery (requires an API key), use Publish-Module -Name MyModule -NuGetApiKey <PLACEHOLDER>.
Known gotchas
FunctionsToExport in the manifest takes precedence over Export-ModuleMember in the .psm1; using both can cause confusion — prefer the manifest entry alone.
The module directory name, .psm1 file name, and .psd1 file name must all be identical (case-insensitive on Windows, but consistent across platforms matters for cross-platform compatibility).
Dot-sourcing helper scripts inside the .psm1 is fine, but avoid exporting private helper functions; list only public functions in FunctionsToExport to keep the module surface clean.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp