MCP (Model Context Protocol) lets AI assistants like Claude interact with OtherFunc directly — creating, managing, and executing functions without the user ever touching esoteric code. The OtherFunc MCP server exposes 8 tools that map to the OtherFunc API.
Prerequisites: an OtherFunc API key. Sign in on the home page to get one.
Install the MCP server binary:
cargo install --path crates/otherfunc-mcp
Set the OTHERFUNC_API_KEY environment variable (required).
Optionally set OTHERFUNC_API_URL to point at a different
API endpoint (defaults to https://api.otherfunc.com).
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"otherfunc": {
"command": "otherfunc-mcp",
"env": { "OTHERFUNC_API_KEY": "of_your_key_here" }
}
}
}
claude mcp add otherfunc otherfunc-mcp -e OTHERFUNC_API_KEY=of_your_key_here
| Tool | Description | Parameters |
|---|---|---|
list_languages |
List available languages | (none) |
execute_code |
Run code without saving | language, code, input? |
execute_function |
Run a saved function | id, input?, version? |
create_function |
Create and deploy a function | slug, language, name, code, description?, is_published? |
get_function |
Get details and source code | id |
list_functions |
List your functions | (none) |
update_function |
Update metadata or code | id, name?, description?, code?, is_published? |
delete_function |
Permanently delete a function | id |
| Tool | Parameter | Type | Required | Description |
|---|---|---|---|---|
execute_code | language | string | yes | Language to execute (brainfuck, forth, apl, lisp) |
execute_code | code | string | yes | Source code to run |
execute_code | input | string | no | Stdin input for the program |
execute_function | id | string | yes | Function ID (UUID) |
execute_function | input | string | no | Stdin input for the function |
execute_function | version | integer | no | Specific version to run (defaults to latest) |
create_function | slug | string | yes | URL slug for the public endpoint |
create_function | language | string | yes | Language for the function |
create_function | name | string | yes | Human-readable name |
create_function | code | string | yes | Source code |
create_function | description | string | no | Description of what the function does |
create_function | is_published | boolean | no | Whether the function is publicly accessible (default false) |
get_function | id | string | yes | Function ID (UUID) |
update_function | id | string | yes | Function ID (UUID) |
update_function | name | string | no | New name |
update_function | description | string | no | New description |
update_function | code | string | no | New source code (creates a new version) |
update_function | is_published | boolean | no | Update publish status |
delete_function | id | string | yes | Function ID (UUID) |
A typical interaction where an AI assistant creates a function on your behalf:
list_languages → picks Brainfuckexecute_code to test itcreate_function to deploy it with slug reverse-stringexecute_function to verify the saved version workshttps://api.otherfunc.com/fn/reverse-string