Skip to content

Commit 33954e9

Browse files
github-actions[bot]AbdallahAHOsmithery[bot]
authored
Release v1.0.5 (#16)
* chore: add .npmignore for cleaner npm package * chore(package): update bin path and repository url syntax Add the .claude directory to npm ignore to exclude development files. Improve package.json metadata by correcting repository URL format to use the git+ protocol and adjusting the CLI binary path to avoid a leading relative path indicator, ensuring better compatibility with package tools. * feat: implement automated release workflow - Add master release workflow triggered from develop branch - Integrate DXT packaging into main CI workflow - Remove redundant release-dxt.yml workflow - Update semantic-release config to disable npm publishing - Add comprehensive release documentation with secrets guide - Implement full GitFlow automation with back-merging This allows contributors to release new versions with a single workflow trigger from the develop branch. The process automatically: 1. Creates release branch with version updates 2. Opens PR to main 3. After merge: publishes to npm, creates GitHub release with DXT 4. Back-merges to develop * feat: extend CI workflow to run on every push to main branches - Rename workflow to ci-code-quality.yml - Run on both pull requests AND pushes to main/develop - Adjust PR-specific features to only run on PRs - Update summaries to reflect branch vs PR context This ensures code quality on all commits to protected branches. * chore: add missing newline at end of config file * fix: add workflow permissions and create CHANGELOG.md - Add explicit permissions for contents and pull-requests in release workflow - Create initial CHANGELOG.md for version tracking - Fix 403 error when creating PRs from GitHub Actions * feat: add pre-commit hooks for formatting and linting - Configure husky to run pre-commit hooks - Add lint-staged to run biome format and lint on staged files - Ensures code quality before commits * fix: update release workflow to handle GitHub Actions PR permissions - Add support for GH_PAT as alternative to repository permissions - Document required GitHub repository settings in RELEASING.md - Add troubleshooting for 403 PR creation errors - Fix lint-staged to only process supported file types * fix: use GitHub CLI for PR creation to avoid permissions issue - Replace github-script with gh CLI for more reliable PR creation - Update documentation for fine-grained token permissions - Add pull request write permission requirement * chore: remove redundant source file ignores from ignore configs Remove obsolete ignore rules for source and script directories in ignore files to simplify project configuration and avoid conflicts with actual publishing logic. This clarifies which files are included during packaging and syncing, ensuring ignore files remain minimal and accurate. * ci: use environment vars for signing certificates Modify the CI workflow to pass signing certificates via environment variables instead of referencing secrets directly in the script. This improves readability and consistency in handling sensitive data during the release process. Minor whitespace cleanups and formatting adjustments are also included for better maintainability. * ci: update dxt command and remove signature verification Replace signature verification step with cleaning the package in the CI workflow to streamline the process. Remove redundant signature verification from the signing script to simplify signing and reduce failure points. Delete the now-unused `.dxtignore` file that listed excluded files for the DXT package. * refactor(logger): defer logger initialization and file setup Improve startup performance and avoid module-level side effects by lazily initializing loggers and deferring log file creation until the first log event. Streamline logger initialization by centralizing file logging setup and replacing synchronous early setup with on-demand initialization. This enhances reliability and reduces unnecessary I/O during import phases. Also apply lazy logger instantiation to domain-related modules for consistent behavior and safer side effect management. * Deployment: Dockerfile and Smithery config (#6) This PR adds files for deploying your MCP server on Smithery. After deployment, users can use your server over streamable HTTP (hosted on [Smithery](https://smithery.ai)) without needing to install any dependencies. ### Changes - Added **Dockerfile** to package your server for deployment. - Added **Smithery Configuration** file to specify how to start your server. See [documentation](https://smithery.ai/docs/build/deployments). - Updated **README** to include installation command via Smithery. _Note that the command only works after the server is deployed on Smithery._ ### Server Details - **Smithery ID**: `@AbdallahAHO/lokalise-mcp` - **Server Homepage**: [https://smithery.ai/server/@AbdallahAHO/lokalise-mcp](https://smithery.ai/server/@AbdallahAHO/lokalise-mcp?utm_campaign=pr&modal=claim) ### Action Items - [X] **Build Passing**: We verified that the Docker builds and your server starts up using an automated test. - [ ] **Code Review**: Please review the changes to ensure the configuration is accurate for your server. *These files were automatically generated and tested by Smithery* --------- Co-authored-by: smithery-ai[bot] <194235850+smithery-ai[bot]@users.noreply.github.com> * Update smithery.yaml * feat(config): add MCP initialization config handling and prioritization (#12) Introduce a handler extracting configuration from MCP client info during initialization, enabling dynamic config setup based on client-provided data. Update configuration loader to prioritize MCP init config over environment variables and other sources, ensuring runtime flexibility and seamless integration with MCP clients. Add comprehensive tests verifying MCP config precedence, boolean parsing, nested config handling, and hostname extraction. * ci: improve back-merge handling in release workflow - Add proper error handling for merge conflicts - Create PR automatically if conflicts occur - Use proper git fetch and checkout commands - Add GH_TOKEN for PR creation * refactor: reorder exports to improve consistency Adjust export statements in the transport module to maintain consistent ordering and grouping. Also tidy up import order in several modules for improved readability and alphabetical consistency, such as reordering imports in the contributors service and keys controller. These changes focus on code style and maintainability without affecting runtime behavior. * feat(usergroups): add complete user group management domain Implement full user groups management including CLI commands, MCP tools, and MCP resources to enable listing, retrieving, creating, updating, deleting, and managing members and projects within user groups. - Introduce domain exports and types with comprehensive Zod validation schemas - Add controller layer handling input validation, error processing, and formatting - Build service layer interfacing with Lokalise User Groups API for actual data operations - Create detailed Markdown formatters for human-readable output of API responses - Provide CLI commands for seamless command-line interaction and automation - Register MCP tools exposing user group operations to the MCP server - Register MCP resources enabling resource-based access to user groups via URI schemes This modular setup establishes a robust user groups domain supporting team-based permission management and integration with Lokalise platform workflows. * feat(teamusers): add domain with CLI, service, controller, formatter, and MCP tools Introduce a new domain for managing Lokalise team users including: - CLI commands for listing, retrieving, updating, and deleting team users. - Controller layer with validation and error handling. - Service layer integrating Lokalise API for team user operations. - Formatting of responses into readable markdown. - MCP resource and tool registration supporting API and interactive usage. Establishes a foundation for consistent and extensible team user management within the system. * feat(queuedprocesses): add domain for monitoring async operations Introduce a new queuedprocesses domain to support tracking and managing background asynchronous processes within Lokalise projects. This includes: - CLI commands for listing and retrieving queued process details with validation - Controller layer for input validation, error handling, and response formatting - Rich Markdown formatters presenting process status, details, and summaries - Service layer encapsulating API communication with Lokalise SDK - MCP resources enabling resource-based access to queued processes data - Tools integration for MCP server with typed argument schemas and error handling - Comprehensive TypeScript types and guards aligned with Lokalise SDK v9.0.0+ This domain provides a structured and user-friendly way to monitor various async tasks such as file uploads, downloads, project imports/exports, improving observability and operational control. Closes #N/A * refactor(prompts): expand and restructure MCP prompts with detailed schemas Rebuilds the MCP prompt registration to provide comprehensive, structured workflows for Lokalise operations using explicit, XML-like instructions aligned with Claude 4 best practices. - Replaces previous prompts with extensively detailed prompts covering project management, language localization, key management, tasks, workflows, team collaboration, compliance, and advanced workflows. - Introduces strict Zod schemas defining argument validation and user-friendly parameter naming to improve usability and robustness. - Enhances prompt guidance with stepwise instructions, context, and output formats to standardize responses and improve clarity. - Enables parallel execution hints and comprehensive analysis steps for efficiency and thorough reporting. - Adds new complex workflows including file upload review, team onboarding, automated review pipelines, process monitoring, and translation memory import. This refactor significantly improves maintainability, clarity, and feature coverage of prompts, setting a foundation for scalable, user-friendly automation workflows within the MCP environment. * feat(prompts): add workflows for post-upload and document extraction reviews Introduce two new review workflows to improve translation task management: - Add post-upload review workflow enabling creation of language-specific review tasks for files already uploaded to the platform with flexible assignee mapping and optional confirmation prior to task creation. - Add document extraction review workflow that parses raw document content into translation keys, creates them in bulk, and sets up translation tasks with language-based assignee assignments. Additionally, enhance key listing functionality by supporting filename-based filtering to precisely select keys associated with specific files, improving task scope accuracy. These additions streamline review and translation setup processes for files and document content, reducing manual overhead and enhancing assignment flexibility. * docs: update documentation Provides a detailed, code-verified guide summarizing full MCP server capabilities including 11 completed domains, 59 tools, 21 resources, and 17 workflow prompts. Enhances project documentation with updated architecture, usage examples, domain interfaces, and best practices to support scalable development and onboarding. Updates metadata and readme to reflect latest feature set and expanded domain coverage. * chore(release): prepare release v1.0.4 * feat(bin): add CLI wrapper and update install scripts Implement a new CLI wrapper script as the package's bin entry point to ensure consistent and flexible server startup across global installs, local setups, and npx usage. Enhance the postinstall script to robustly set executable permissions on both the new CLI wrapper and the existing dist entry point, improving cross-platform reliability. Add metadata fields and files array to package configuration for better package management and publishing hygiene. Expand README with detailed instructions for global and npx usage to clarify recommended installation and running workflows for users. * ci: improve back-merge strategy from main to develop Update the back-merge process in CI to use the "theirs" merge strategy, automatically resolving conflicts by favoring changes from the main branch during merges into develop. Add a fallback force-resolution approach that resets develop and force-pushes a merge result when automatic conflict resolution still fails, improving merge reliability and reducing manual intervention. This ensures smoother synchronization after releases and minimizes blocked workflows. * chore(release): prepare release v1.0.5 --------- Co-authored-by: Abdallah Othman <abdallah.ali.hassan@gmail.com> Co-authored-by: smithery-ai[bot] <194235850+smithery-ai[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 01063a5 commit 33954e9

10 files changed

Lines changed: 176 additions & 40 deletions

File tree

.github/workflows/ci-semantic-release.yml

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -191,38 +191,36 @@ jobs:
191191
# Checkout develop
192192
git checkout -B develop origin/develop
193193
194-
# Try to merge main
195-
if git merge origin/main -m "chore: back-merge main to develop after v${{ steps.get-version.outputs.version }} release" --no-edit; then
196-
echo "✅ Merge successful"
194+
# Try to merge main with strategy to automatically resolve conflicts
195+
# Using -X theirs to always take changes from main when conflicts occur
196+
echo "🔄 Attempting to merge main into develop..."
197+
198+
if git merge origin/main -X theirs -m "chore: back-merge main to develop after v${{ steps.get-version.outputs.version }} release" --no-edit; then
199+
echo "✅ Merge successful (conflicts auto-resolved using main's version)"
197200
# Push to develop
198201
git push origin develop
202+
echo "✅ Successfully pushed merged changes to develop"
199203
else
200-
echo "⚠️ Merge conflicts detected. Creating a PR for manual resolution."
201-
202-
# Create a branch for the back-merge
203-
BACKMERGE_BRANCH="backmerge/v${{ steps.get-version.outputs.version }}-to-develop"
204-
git checkout -b "$BACKMERGE_BRANCH"
205-
206-
# Stage any resolved files (in case of partial auto-resolution)
207-
git add -A
208-
209-
# Commit with conflicts markers if any
210-
git commit -m "chore: back-merge main to develop after v${{ steps.get-version.outputs.version }} release (with conflicts)" || true
211-
212-
# Push the branch
213-
git push origin "$BACKMERGE_BRANCH"
214-
215-
# Create a PR for manual resolution
216-
gh pr create \
217-
--title "Back-merge: v${{ steps.get-version.outputs.version }} from main to develop" \
218-
--body "This PR back-merges the changes from the v${{ steps.get-version.outputs.version }} release into develop.
219-
220-
⚠️ **Merge conflicts were detected and need manual resolution.**
221-
222-
Please review and resolve any conflicts before merging." \
223-
--base develop \
224-
--head "$BACKMERGE_BRANCH" \
225-
--repo ${{ github.repository }} || echo "PR creation failed, please create manually"
204+
# This should rarely happen with -X theirs, but handle it just in case
205+
echo "⚠️ Unexpected merge failure even with auto-resolution. Attempting force resolution..."
206+
207+
# Reset to develop and try a different approach
208+
git reset --hard origin/develop
209+
210+
# Create a temporary branch from main
211+
git checkout -B temp-main origin/main
212+
213+
# Merge develop into this branch (reverse merge) and take all from main
214+
git merge origin/develop --strategy=ours -m "chore: back-merge main to develop after v${{ steps.get-version.outputs.version }} release (force resolved)"
215+
216+
# Now force push this as the new develop
217+
git branch -f develop HEAD
218+
git checkout develop
219+
220+
# Push the resolved develop branch
221+
git push origin develop --force-with-lease
222+
223+
echo "✅ Force-resolved conflicts by taking all changes from main"
226224
fi
227225
228226
# Step 12: Summary

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## [1.0.5] - 2025-08-12
2+
3+
### Added
4+
- Improve the NPX setup
5+
6+
17
## [1.0.4] - 2025-08-11
28

39
### Added
@@ -134,6 +140,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
134140
- Commander.js for CLI framework
135141
- ES modules with Node.js >=18.0.0 requirement
136142

143+
[1.0.5]: https://github.com/AbdallahAHO/lokalise-mcp/compare/v1.0.4...v1.0.5
137144
[1.0.4]: https://github.com/AbdallahAHO/lokalise-mcp/compare/v1.0.3...v1.0.4
138145
[1.0.3]: https://github.com/AbdallahAHO/lokalise-mcp/compare/v1.0.2...v1.0.3
139146
[1.0.2]: https://github.com/AbdallahAHO/lokalise-mcp/compare/v1.0.1...v1.0.2

README.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,70 @@ Notes:
138138
- Uses the `/mcp` HTTP endpoint internally and stdio as appropriate
139139
- Updates by installing a newer `.dxt` from Releases
140140

141+
### Option 3: NPM Global Install
142+
143+
Install globally for persistent access:
144+
145+
```bash
146+
npx -y @smithery/cli@latest inspect @AbdallahAHO/lokalise-mcp
147+
```
148+
149+
### Option 2: Claude Desktop Extension (DXT)
150+
151+
Fast, local install for Claude Desktop using a packaged extension.
152+
153+
1) Download the latest `.dxt` from Releases:
154+
- https://github.com/AbdallahAHO/lokalise-mcp/releases
155+
156+
2) Install in Claude Desktop:
157+
- Double‑click the `.dxt` file, or
158+
- Drag it into Claude Desktop → Settings → Extensions
159+
160+
3) When prompted, enter your `LOKALISE_API_KEY` (stored securely in the OS keychain). No Node.js needed; Claude ships the runtime.
161+
162+
4) Verify: ask “Can you list my Lokalise projects?”
163+
164+
Notes:
165+
- Uses the `/mcp` HTTP endpoint internally and stdio as appropriate
166+
- Updates by installing a newer `.dxt` from Releases
167+
141168
### Option 3: Local (clone + run)
142169

170+
# Run the server
171+
lokalise-mcp
172+
```
173+
174+
### Option 4: NPX (Quick Start)
175+
176+
Use npx to run the server without installation:
177+
178+
```bash
179+
# Run directly with npx
180+
npx lokalise-mcp
181+
182+
# Or configure in Claude Desktop's config file:
183+
```
184+
185+
**Claude Desktop Configuration** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
186+
187+
```json
188+
{
189+
"mcpServers": {
190+
"lokalise": {
191+
"command": "npx",
192+
"args": ["-y", "lokalise-mcp"],
193+
"env": {
194+
"LOKALISE_API_KEY": "your-api-key-here"
195+
}
196+
}
197+
}
198+
}
199+
```
200+
201+
This will automatically download and run the latest version when Claude Desktop starts.
202+
203+
### Option 4: Local (clone + run)
204+
143205
Use this for development or when you prefer to run locally:
144206

145207
```bash

bin/lokalise-mcp.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/usr/bin/env node
2+
3+
/**
4+
* Lokalise MCP Server CLI Wrapper
5+
*
6+
* This wrapper ensures the MCP server runs correctly whether installed
7+
* globally, locally, or via npx.
8+
*/
9+
10+
import { spawn } from "child_process";
11+
import { fileURLToPath } from "url";
12+
import { dirname, join } from "path";
13+
14+
const __filename = fileURLToPath(import.meta.url);
15+
const __dirname = dirname(__filename);
16+
17+
// Path to the actual compiled entry point
18+
const entryPoint = join(__dirname, "..", "dist", "index.js");
19+
20+
// Pass through all arguments and environment variables
21+
const args = process.argv.slice(2);
22+
const env = { ...process.env };
23+
24+
// Ensure MCP_SERVER_MODE is set if no arguments (server mode)
25+
if (args.length === 0 && !env.MCP_SERVER_MODE) {
26+
env.MCP_SERVER_MODE = "true";
27+
}
28+
29+
// Spawn the actual process
30+
const child = spawn(process.execPath, [entryPoint, ...args], {
31+
env,
32+
stdio: "inherit",
33+
});
34+
35+
// Forward the exit code
36+
child.on("exit", (code) => {
37+
process.exit(code || 0);
38+
});
39+
40+
// Handle errors
41+
child.on("error", (err) => {
42+
console.error("Failed to start Lokalise MCP Server:", err);
43+
process.exit(1);
44+
});

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"dxt_version": "0.1",
33
"name": "lokalise-mcp",
44
"display_name": "Lokalise MCP",
5-
"version": "1.0.4",
5+
"version": "1.0.5",
66
"description": "Unofficial Lokalise integration for AI assistants - manage projects, keys, languages, tasks, translations, teams, and workflows through natural language with 59 intelligent tools across 11 domains.",
77
"long_description": "# Lokalise MCP Server\n\n> **Disclaimer**: This is an independent project and not affiliated with Lokalise Inc. It uses the publicly available Lokalise Node.js SDK to provide MCP integration.\n\n## Transform Your Localization Workflow with Conversational AI\n\n**Stop clicking, start commanding.** With 59 intelligent tools across 9 domains, this MCP server transforms Lokalise from a complex UI into your personal localization assistant. Simply describe what you need in natural language, and watch as your AI orchestrates sophisticated API workflows in seconds.\n\nInstead of clicking through multiple screens, just chat with your AI assistant:\n- *\"Show me all projects with less than 80% translation progress\"*\n- *\"Create a new mobile app project with German, French, and Spanish support\"*\n- *\"Find all untranslated keys in the iOS app and assign them to the German team\"*\n- *\"Archive all keys tagged 'v1_deprecated' across all projects\"*\n\n### 59 Production-Ready Tools Across 9 Domains\n\n**Contributors (5 tools)** - Team collaboration and permission management\n**Keys (5 tools)** - Intelligent key management with bulk operations and smart filtering\n**Glossary (5 tools)** - Terminology consistency and brand voice enforcement\n**Project (5 tools)** - Comprehensive project management capabilities\n**Tasks (5 tools)** - Workflow automation and deadline management\n**Group (4 tools)** - Comprehensive group management capabilities\n**Projects (4 tools)** - Complete project lifecycle management from creation to archival\n**Translations (4 tools)** - Direct translation management with review workflows\n\n### Real-World Workflows That Save Hours\n\n**For Localization Managers:**\n- *Morning standup in 10 seconds*: \"Give me the health check for all active projects. Who's behind schedule?\"\n- *Instant team scaling*: \"Add marie@company.com as a French reviewer to all e-commerce projects\"\n- *Proactive monitoring*: \"Alert me when any project drops below 70% completion\"\n\n**For Developers:**\n- *Zero-friction deployment*: \"Sync the feature/new-login branch to Lokalise and create tasks for Spanish and German\"\n- *Instant validation*: \"Check if all keys in the Android app have iOS equivalents\"\n- *Automated QA*: \"Find all keys with unbalanced brackets and create a cleanup task\"\n\n**For Marketing Teams:**\n- *Campaign launch in one command*: \"Create a project from this Google Doc, translate to our tier-1 markets, use informal tone\"\n- *Brand consistency*: \"Add 'QuantumLeap' to the glossary as non-translatable across all projects\"\n- *Content updates*: \"Update all homepage headlines with the new tagline across all languages\"\n\n**Traditional UI Workflow:**\n- Navigate through multiple screens\n- Click through complex forms\n- Context switch between tools\n- Time: 10-15 minutes per task\n\n**Conversational MCP Workflow:**\n- Express intent in natural language\n- AI orchestrates API calls\n- Results delivered instantly\n- Time: 10-30 seconds per task\n\n\n### Get Started in 30 Seconds\n\n1. Install the MCP server\n2. Add your Lokalise API token\n3. Start commanding your localization workflow\n",
88
"author": {

package.json

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
{
22
"name": "lokalise-mcp",
3-
"version": "1.0.4",
3+
"version": "1.0.5",
44
"description": "The Lokalise MCP Server brings Lokalise's localization power to Claude and AI assistants—manage projects, keys, and translations by chat.",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
77
"repository": {
88
"type": "git",
99
"url": "git+https://github.com/AbdallahAHO/lokalise-mcp.git"
1010
},
11+
"bugs": {
12+
"url": "https://github.com/AbdallahAHO/lokalise-mcp/issues"
13+
},
14+
"homepage": "https://github.com/AbdallahAHO/lokalise-mcp#readme",
1115
"bin": {
12-
"lokalise-mcp": "dist/index.js"
16+
"lokalise-mcp": "bin/lokalise-mcp.js"
1317
},
1418
"type": "module",
1519
"module": "dist/index.js",
@@ -29,8 +33,9 @@
2933
"mcp:inspect": "dotenv npm run build && dotenv -- npx @modelcontextprotocol/inspector -e TRANSPORT_MODE=stdio -e DEBUG=true node dist/index.js",
3034
"mcp:inspect:http": "dotenv npm run build && (dotenv -e TRANSPORT_MODE=http -- node dist/index.js &) && sleep 3 && dotenv -- npx @modelcontextprotocol/inspector http://localhost:3000/mcp",
3135
"mcp:stdio": "dotenv npm run build && dotenv -e TRANSPORT_MODE=stdio -- node dist/index.js",
32-
"postinstall": "node scripts/ensure-executable.js",
36+
"postinstall": "node scripts/ensure-executable.js 2>/dev/null || true",
3337
"prepare": "husky",
38+
"prepublishOnly": "npm run clean && npm run build",
3439
"release:checksums": "node scripts/generate-checksums.js",
3540
"release:dry-run": "npm run build && npm run release:prepare && echo '✅ Dry run completed successfully'",
3641
"release:prepare": "node scripts/prepare-release.js",
@@ -111,6 +116,15 @@
111116
"registry": "https://registry.npmjs.org/",
112117
"access": "public"
113118
},
119+
"files": [
120+
"dist/**/*",
121+
"bin/**/*",
122+
"scripts/ensure-executable.js",
123+
"manifest.json",
124+
"README.md",
125+
"LICENSE",
126+
"CHANGELOG.md"
127+
],
114128
"lint-staged": {
115129
"*.{js,ts,json}": [
116130
"biome format --write",

release/checksums.sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
675f7acb22801672679d273a67d94704ecc360059547b7ddbfad5eea1e772a70 lokalise-mcp-1.0.4.dxt
1+
c6c87d16f754fcd0be625a87228a7228d09ea16792676b27679a1b5687b23e30 lokalise-mcp-1.0.5.dxt

release/lokalise-mcp-1.0.5.dxt

73.2 MB
Binary file not shown.

release/release-summary.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{
2-
"version": "1.0.4",
3-
"date": "2025-08-11T15:38:51.889Z",
2+
"version": "1.0.5",
3+
"date": "2025-08-12T09:17:25.228Z",
44
"assets": [
55
{
6-
"filename": "lokalise-mcp-1.0.4.dxt",
7-
"sha256": "675f7acb22801672679d273a67d94704ecc360059547b7ddbfad5eea1e772a70"
6+
"filename": "lokalise-mcp-1.0.5.dxt",
7+
"sha256": "c6c87d16f754fcd0be625a87228a7228d09ea16792676b27679a1b5687b23e30"
88
}
99
],
1010
"npm": {
1111
"package": "lokalise-mcp",
12-
"version": "1.0.4",
12+
"version": "1.0.5",
1313
"registry": "https://registry.npmjs.org/"
1414
},
1515
"github": {
1616
"repository": "AbdallahAHO/lokalise-mcp",
17-
"tag": "v1.0.4"
17+
"tag": "v1.0.5"
1818
}
1919
}

scripts/ensure-executable.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,20 @@ import { fileURLToPath } from "node:url";
77
const __filename = fileURLToPath(import.meta.url);
88
const __dirname = path.dirname(__filename);
99
const rootDir = path.resolve(__dirname, "..");
10+
const binScript = path.join(rootDir, "bin", "lokalise-mcp.js");
1011
const entryPoint = path.join(rootDir, "dist", "index.js");
1112

1213
try {
14+
// Make the bin script executable
15+
if (fs.existsSync(binScript)) {
16+
try {
17+
fs.chmodSync(binScript, 0o755);
18+
} catch (err) {
19+
// Silently fail if chmod is not available (Windows, some containers)
20+
}
21+
}
22+
23+
// Also make the dist entry point executable if it exists
1324
if (fs.existsSync(entryPoint)) {
1425
// Ensure the file is executable (cross-platform)
1526
const currentMode = fs.statSync(entryPoint).mode;

0 commit comments

Comments
 (0)