48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# mcpo
|
|
|
|
A simple MCP-to-OpenAPI proxy server.
|
|
|
|
View the [*synix* NixOS module on Forgejo](https://git.sid.ovh/sid/synix/tree/master/modules/nixos/mcpo).
|
|
|
|
## References
|
|
|
|
- [GitHub](https://github.com/open-webui/mcpo)
|
|
|
|
## Configuration
|
|
|
|
You have to provide a package, for example from [synix](https://git.sid.ovh/sid/synix/tree/master/pkgs/mcpo/default.nix).
|
|
|
|
Setting `mcpServers` is required. The following example runs a NixOS MCP server using [mcp-nixos](https://github.com/utensils/mcp-nixos).
|
|
|
|
```nix
|
|
{ inputs, lib, pkgs, ... }:
|
|
|
|
let
|
|
inherit (pkgs.stdenv.hostPlatform) system;
|
|
in
|
|
{
|
|
imports = [ inputs.synix.nixosModules.mcpo ];
|
|
|
|
services.mcpo = {
|
|
enable = true;
|
|
package = inputs.synix.packages."${system}".mcpo;
|
|
settings = {
|
|
mcpServers = {
|
|
nixos = {
|
|
command = lib.getExe inputs.mcp-nixos.packages."${system}".mcp-nixos;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|
|
```
|
|
|
|
## Usage
|
|
|
|
Each tool will be accessible under its own unique route `127.0.0.1:8000/<mcp-server>`. Following the example from above, visit [127.0.0.1:8000/nixos/docs](http://127.0.0.1:8000/nixos/docs) to send requests manually.
|
|
|
|
## Open WebUI Integration
|
|
|
|
Follow the [official Open WebUI integration documentation starting at *Step 2*](https://docs.openwebui.com/openapi-servers/open-webui/#step-2-connect-tool-server-in-open-webui).
|
|
|
|
In Open WebUI, users have to set *Function Calling* to *Native* in *Settings* > *General* > *Advanced Parameters*. Then, they can enable MCP servers in a chat by clicking *More* (the plus sign) in the bottom left of the prompt window.
|