{
  "markdown": "# Taranis MCP Server\n\n<!-- mcp-name: io.github.taranis-ai/taranis-mcp-server -->\n\nA read-oriented Model Context Protocol server for Taranis AI. The current version exposes the `list_stories` and `list_sources` tools over stdio or authenticated Streamable HTTP.\n\n## Configuration\n\nYou need a reachable Taranis instance and a user with `ASSESS_ACCESS`. Set `TARANIS_API_URL` to the complete API root, including `/api`, then choose exactly one authentication mode:\n\n- `TARANIS_USERNAME` and `TARANIS_PASSWORD`: the server logs in lazily and can log in again after an expired JWT.\n- `TARANIS_ACCESS_TOKEN`: use an existing JWT returned by Taranis `/api/auth/login`; it cannot be renewed without credentials.\n\nDo not reuse a Taranis JWT as `MCP_ACCESS_TOKEN`. The latter protects the MCP HTTP endpoint and is not needed for stdio.\n\n## Installation and MCP Client Configuration\n\nThis server is intended for desktop AI assistants as well as developer tools. Desktop applications with MCP support include Claude Desktop and OpenAI's ChatGPT desktop app. IDE and terminal clients include Cursor, Zed, Codex CLI, and the Codex IDE extension. If another assistant, such as Mistral Le Chat, offers MCP integration in your installed version or workspace, use its local stdio or remote Streamable HTTP configuration as appropriate.\n\nClients that support local stdio can launch the server as a child process. The configuration file location and surrounding schema depend on the client, but the server command, arguments, and environment are the same. Desktop applications that support only remote MCP connectors should use the Streamable HTTP setup below instead.\n\n### PyPI with uvx\n\nThis option installs and runs the package without cloning the repository. Install [uv](https://docs.astral.sh/uv/), then add the following definition to a client that uses the `mcpServers` format, such as Claude Desktop or Cursor:\n\n```json\n{\n  \"mcpServers\": {\n    \"taranis\": {\n      \"command\": \"/absolute/path/to/uvx\",\n      \"args\": [\"taranis-mcp-server\"],\n      \"env\": {\n        \"MCP_TRANSPORT\": \"stdio\",\n        \"TARANIS_API_URL\": \"https://taranis.example/api\",\n        \"TARANIS_USERNAME\": \"analyst\",\n        \"TARANIS_PASSWORD\": \"change-me\"\n      }\n    }\n  }\n}\n```\n\nUse `which uvx` on Linux/macOS or `where uvx` on Windows to find the executable. On Windows the path may end in `uvx.exe`. An absolute path is recommended because desktop applications may have a smaller `PATH` than an interactive shell.\n\n### Container with Docker\n\nThis option requires only Docker. On Windows, install and start Docker Desktop before launching the MCP client. The client passes its configured environment variables to `docker`, and the `-e` arguments forward them into the container:\n\n```json\n{\n  \"mcpServers\": {\n    \"taranis\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"--rm\",\n        \"-i\",\n        \"-e\",\n        \"TARANIS_API_URL\",\n        \"-e\",\n        \"TARANIS_USERNAME\",\n        \"-e\",\n        \"TARANIS_PASSWORD\",\n        \"ghcr.io/taranis-ai/taranis-mcp-server:stable\"\n      ],\n      \"env\": {\n        \"TARANIS_API_URL\": \"https://taranis.example/api\",\n        \"TARANIS_USERNAME\": \"analyst\",\n        \"TARANIS_PASSWORD\": \"change-me\"\n      }\n    }\n  }\n}\n```\n\nThe `stable` tag follows the newest stable container release. Replace it with an exact tag such as `0.1.1` for a reproducible installation. Likewise, append a version to the PyPI argument, such as `taranis-mcp-server==0.1.1`, to pin that installation.\n\nFor either installation method, use a JWT by replacing the username and password with `TARANIS_ACCESS_TOKEN`. In the Docker arguments, also replace the two credential `-e` entries with `\"-e\", \"TARANIS_ACCESS_TOKEN\"`.\n\n### MCP Registry\n\nStarting with version `0.1.1`, releases are published as `io.github.taranis-ai/taranis-mcp-server` in the official MCP Registry. Registry-aware applications can use that identity to discover the server and choose either its PyPI or OCI package. The registry does not define one universal install command, so the final confirmation and configuration flow depends on the application.\n\nDo not commit a project-level MCP configuration containing credentials. Restart or reload the client after saving its configuration. Its MCP settings should show a `taranis` server with the `list_stories` and `list_sources` tools. For clients such as Zed that use a different configuration schema, carry over the same command, argument list, and environment values into that client's stdio MCP definition.\n\n### Codex\n\nCodex CLI and the Codex IDE extension share MCP configuration from `~/.codex/config.toml`. Add this server definition, replacing the absolute path:\n\n```toml\n[mcp_servers.taranis]\ncommand = \"/absolute/path/to/uvx\"\nargs = [\"taranis-mcp-server\"]\nenv_vars = [\"TARANIS_USERNAME\", \"TARANIS_PASSWORD\"]\n\n[mcp_servers.taranis.env]\nMCP_TRANSPORT = \"stdio\"\nTARANIS_API_URL = \"https://taranis.example/api\"\n```\n\nExport the forwarded credentials before starting Codex:\n\n```bash\nexport TARANIS_USERNAME=analyst\nexport TARANIS_PASSWORD=change-me\ncodex mcp list\ncodex\n```\n\nUse `/mcp` inside the Codex TUI to confirm that `taranis` is active and exposes `list_stories` and `list_sources`. To use a JWT instead, replace the two names in `env_vars` with `TARANIS_ACCESS_TOKEN` and export that variable.\n\n## Streamable HTTP\n\nFor a separately running server, configure `MCP_TRANSPORT=streamable-http`, set a strong `MCP_ACCESS_TOKEN`, and start:\n\n```bash\nuv run --frozen taranis-mcp-server\n```\n\nThe default endpoint is `http://127.0.0.1:8000/mcp`. Clients must send `Authorization: Bearer <MCP_ACCESS_TOKEN>`. For a non-local deployment, configure `MCP_PUBLIC_URL`, `MCP_ISSUER_URL`, `MCP_ALLOWED_HOSTS`, and `MCP_ALLOWED_ORIGINS` for the externally visible address, and terminate TLS at a trusted reverse proxy.\n\n## Development from Source\n\nDevelopment requires Python 3.12 or newer and [uv](https://docs.astral.sh/uv/). Clone the repository, copy `.env.example` to `.env`, and install the locked dependencies:\n\n```bash\nuv sync --frozen\n```\n\nRun the server using the configuration from `.env`:\n\n```bash\nuv run --frozen taranis-mcp-server\n```\n\nRun the development checks:\n\n```bash\nuv run --frozen pytest\nuv run --frozen ruff check .\n```\n",
  "bytes": 6243,
  "sha": "3da9f271a2e3469d73d384b6aa3a47d518bb4b88526e17d8fbd3b622d88be775",
  "repo_slug": "taranis-ai/taranis-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_taranis_ai_taranis_mcp_server_9ad6ea4f/readme"
}