ohneben's Wafeq MCP - Run your Wafeq books from Claude, Cursor, or any MCP client — all 251 API endpoints as safety-categorized MCP tools, over stdio or Streamable HTTP, in Docker.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add wafeq --env MCP_TRANSPORT='<MCP_TRANSPORT>' --env WAFEQ_API_KEY='<WAFEQ_API_KEY>' --env WAFEQ_ACCESS_TOKEN='<WAFEQ_ACCESS_TOKEN>' --env MCP_AUTH_TOKEN='<MCP_AUTH_TOKEN>' -- docker run -i --rm -e MCP_TRANSPORT -e WAFEQ_API_KEY -e WAFEQ_ACCESS_TOKEN -e MCP_AUTH_TOKEN ghcr.io/ohneben/wafeq-mcp:2.1.0~/.codex/config.toml
[mcp_servers.wafeq]
command = "docker"
args = ["run", "-i", "--rm", "-e", "MCP_TRANSPORT", "-e", "WAFEQ_API_KEY", "-e", "WAFEQ_ACCESS_TOKEN", "-e", "MCP_AUTH_TOKEN", "ghcr.io/ohneben/wafeq-mcp:2.1.0"]
env = { MCP_TRANSPORT = "<MCP_TRANSPORT>", WAFEQ_API_KEY = "<WAFEQ_API_KEY>", WAFEQ_ACCESS_TOKEN = "<WAFEQ_ACCESS_TOKEN>", MCP_AUTH_TOKEN = "<MCP_AUTH_TOKEN>" }
# codex mcp add wafeq --env MCP_TRANSPORT='<MCP_TRANSPORT>' --env WAFEQ_API_KEY='<WAFEQ_API_KEY>' --env WAFEQ_ACCESS_TOKEN='<WAFEQ_ACCESS_TOKEN>' --env MCP_AUTH_TOKEN='<MCP_AUTH_TOKEN>' -- docker run -i --rm -e MCP_TRANSPORT -e WAFEQ_API_KEY -e WAFEQ_ACCESS_TOKEN -e MCP_AUTH_TOKEN ghcr.io/ohneben/wafeq-mcp:2.1.0~/.cursor/mcp.json
{
"mcpServers": {
"wafeq": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"WAFEQ_API_KEY",
"-e",
"WAFEQ_ACCESS_TOKEN",
"-e",
"MCP_AUTH_TOKEN",
"ghcr.io/ohneben/wafeq-mcp:2.1.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAFEQ_API_KEY": "<WAFEQ_API_KEY>",
"WAFEQ_ACCESS_TOKEN": "<WAFEQ_ACCESS_TOKEN>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"wafeq": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"WAFEQ_API_KEY",
"-e",
"WAFEQ_ACCESS_TOKEN",
"-e",
"MCP_AUTH_TOKEN",
"ghcr.io/ohneben/wafeq-mcp:2.1.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAFEQ_API_KEY": "<WAFEQ_API_KEY>",
"WAFEQ_ACCESS_TOKEN": "<WAFEQ_ACCESS_TOKEN>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"wafeq": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"WAFEQ_API_KEY",
"-e",
"WAFEQ_ACCESS_TOKEN",
"-e",
"MCP_AUTH_TOKEN",
"ghcr.io/ohneben/wafeq-mcp:2.1.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAFEQ_API_KEY": "<WAFEQ_API_KEY>",
"WAFEQ_ACCESS_TOKEN": "<WAFEQ_ACCESS_TOKEN>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"wafeq": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"WAFEQ_API_KEY",
"-e",
"WAFEQ_ACCESS_TOKEN",
"-e",
"MCP_AUTH_TOKEN",
"ghcr.io/ohneben/wafeq-mcp:2.1.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAFEQ_API_KEY": "<WAFEQ_API_KEY>",
"WAFEQ_ACCESS_TOKEN": "<WAFEQ_ACCESS_TOKEN>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"wafeq": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MCP_TRANSPORT",
"-e",
"WAFEQ_API_KEY",
"-e",
"WAFEQ_ACCESS_TOKEN",
"-e",
"MCP_AUTH_TOKEN",
"ghcr.io/ohneben/wafeq-mcp:2.1.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAFEQ_API_KEY": "<WAFEQ_API_KEY>",
"WAFEQ_ACCESS_TOKEN": "<WAFEQ_ACCESS_TOKEN>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>"
}
}
}
}Environment variables
MCP_TRANSPORTWAFEQ_API_KEYWAFEQ_ACCESS_TOKENMCP_AUTH_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.