Skip to content

Repository files navigation

Sentiary Tools

This project provides two frontends for the Sentiary REST API.

  • sentiary-cli provides direct terminal commands.
  • sentiary-mcp provides a hosted streamable HTTP MCP service.

Both frontends use the API contract and client in internal/sentiary.

Install the CLI

Install the latest release:

curl -fsSL https://raw.githubusercontent.com/MateeDevs/sentiary-mcp-server/main/install.sh | sh

On Windows, run this command in PowerShell:

irm https://raw.githubusercontent.com/MateeDevs/sentiary-mcp-server/main/install.ps1 | iex

The installers support AMD64 and ARM64 on macOS, Linux, and Windows.

You can also install the CLI from source:

git clone https://github.com/MateeDevs/sentiary-mcp-server.git
cd sentiary-mcp-server
go install ./cmd/sentiary-cli

Set the user API key before you run a command:

export SENTIARY_USER_API_KEY="user-api-key"

You can set SENTIARY_PROJECT_ID as the default project ID. A command-level --project-id value takes precedence.

CLI commands

Export Czech strings as JSON to standard output:

sentiary-cli export \
  --project-id="asdf" \
  --format="json" \
  --language="cs_CZ"

Write the export to a file:

sentiary-cli export \
  --project-id="asdf" \
  --format="json" \
  --language="cs_CZ" \
  --output="strings.json"

Import a file:

sentiary-cli import \
  --project-id="asdf" \
  --format="json" \
  --language="cs_CZ" \
  --input="strings.json"

Use - as the input or output path for a standard stream.

Available commands:

  • Projects: list-projects, get-project, create-project, edit-project, remove-project
  • Languages: list-languages, list-project-languages, add-project-language, remove-project-language
  • Members: list-project-members, set-project-member-role, remove-project-member
  • Invitations: list-invitations, create-invitation, accept-invitation, decline-invitation, list-project-invitations, remove-project-invitation
  • list
  • search
  • get
  • add
  • edit
  • remove
  • set-translation
  • remove-translation
  • info
  • export
  • import

Run sentiary-cli <command> --help to see the command options.

Create a project and add Czech:

sentiary-cli create-project --name="Mobile app"
sentiary-cli add-project-language \
  --project-id="asdf" \
  --language="cs_CZ"

Invite a developer:

sentiary-cli create-invitation \
  --project-id="asdf" \
  --user-email="developer@example.com" \
  --role="developer"

Member and invitation roles are administrator, developer, and translator.

Search keys, translations, descriptions, and context:

sentiary-cli search \
  --project-id="asdf" \
  --query="Ahoj"

Hosted MCP

The hosted frontend reads the user API key when it creates an MCP session. Each session gets a separate API client.

The hosted frontend reads the key from the first available source:

  1. X-Sentiary-User-Api-Key: <key>
  2. Authorization: Bearer <key>
  3. Authorization: Ribbon <key>
  4. SENTIARY_USER_API_KEY in the service environment

The Authorization header can also contain a bare API key.

Example MCP client configuration:

{
  "mcpServers": {
    "sentiary": {
      "type": "http",
      "url": "https://mcp.example.com/",
      "headers": {
        "Authorization": "Bearer user-api-key"
      }
    }
  }
}

The hosted frontend uses port 8080 by default. Set PORT to use a different port.

The service exposes MCP at / and its health check at /healthz.

Build

Build both frontends:

mkdir -p bin
go build -o bin/sentiary-cli ./cmd/sentiary-cli
go build -o bin/sentiary-mcp ./cmd/sentiary-mcp

Docker

Build and run the hosted frontend:

docker build -t sentiary-mcp .
docker run --rm -p 8080:8080 sentiary-mcp

Clients can send their own API keys. The container does not need a shared API key.

MCP tools

Project tools:

  • list_projects
  • get_project
  • create_project
  • edit_project
  • remove_project

Language tools:

  • list_supported_languages
  • list_project_languages
  • add_project_language
  • remove_project_language

Member tools:

  • list_project_members
  • set_project_member_role
  • remove_project_member

Invitation tools:

  • list_invitations
  • create_invitation
  • accept_invitation
  • decline_invitation
  • list_project_invitations
  • remove_project_invitation

String tools:

  • list_project_strings
  • search_project_strings
  • get_project_string
  • get_project_string_by_key
  • add_project_string
  • edit_project_string
  • remove_project_string
  • set_project_string_translation
  • remove_project_string_translation

Batch tools:

  • get_project_strings_info
  • export_project_strings
  • import_project_strings

The batch tools support json, android, apple, and compose formats.

Agent skill

The repository includes two agent skills:

About

MCP for the Sentiary strings management platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages