{"id":38959569,"url":"https://github.com/p1va/lsp-use","last_synced_at":"2026-01-17T16:23:26.111Z","repository":{"id":305096075,"uuid":"1017472129","full_name":"p1va/lsp-use","owner":"p1va","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-18T09:44:25.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-18T10:27:12.405Z","etag":null,"topics":["claude","csharp","language-server-protocol","mcp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p1va.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-10T15:27:41.000Z","updated_at":"2025-07-18T09:44:29.000Z","dependencies_parsed_at":"2025-07-18T10:31:10.235Z","dependency_job_id":"fa588fbc-8e0f-4738-8a75-1d3c0a3d2ef7","html_url":"https://github.com/p1va/lsp-use","commit_stats":null,"previous_names":["p1va/lsp-use"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/p1va/lsp-use","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1va%2Flsp-use","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1va%2Flsp-use/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1va%2Flsp-use/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1va%2Flsp-use/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p1va","download_url":"https://codeload.github.com/p1va/lsp-use/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p1va%2Flsp-use/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude","csharp","language-server-protocol","mcp"],"created_at":"2026-01-17T16:23:26.036Z","updated_at":"2026-01-17T16:23:26.101Z","avatar_url":"https://github.com/p1va.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Symbols MCP\n\nRead, inspect and navigate through codebase symbols by connecting to a Language Server\n\n![NPM Version](https://img.shields.io/npm/v/%40p1va%2Fsymbols?style=flat)\n\n\n\u003c/div\u003e\n\n## Introduction\n\nBy connecting to a Language Server of choice this MCP server makes it easy and efficient for coding agents to explore and navigate the codebase and its dependencies.\nThe server offers a minimal toolset intended to be simple to use and light on the model's context.\n\n### Available Tools\n\n- **`outline`**: returns an outline of code symbols in a file. Either compact or with a small code snippet\n- **`inspect`**: returns docs, signature, declaration and implementation locations for a symbol. For local and third-party ones (e.g. npm, NuGet, ... )\n- **`search`**: returns matching symbols across the codebase\n- **`references`**: finds all references of a symbol across the codebase\n- **`rename`**: renames all references of a symbol across the codebase\n- **`diagnostics`**: returns active diagnostics in a given file\n- **`completion`**: returns a list of contextual completions at a given location\n- **`logs`**: returns Language Server own logs for troubleshooting\n\n## Installation\n\n### Quickstart (`run` command)\n\nUse the `run` command to start the MCP server with the desired Language Server command defined inline.\n\n`npx -y \"@p1va/symbols\" run [run options] \u003clsp-cmd\u003e [lsp args]`\n\nSee below configurations for the Language Servers tested. Other stdio Language Servers *should* work too. For simplicity examples follow Claude Code schema.\n\n\u003cdetails\u003e\n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-3670A0?\u0026logo=python\u0026logoColor=ffdd54\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003ePyright\u003c/b\u003e\n\u003c/summary\u003e\n\n### Pyright\n\n#### Installation\n\n`npm install -g pyright`\n\n#### Verify Installation\n\n`pyright-langserver` should be available\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        \"pyright-langserver\", \"--stdio\"\n      ]\n    }\n  }\n}\n```\n\n\u003e ℹ️ If you'd rather avoid installing **pyright** globally and are fine with a slower start up, you can substitute `pyright-langserver --stdio` in the JSON above with `npx -y -p pyright pyright-langserver --stdio`\n\n#### Troubleshooting\n\n**Virtual Env not found**\n\nIf the `logs` tool output includes errors or the `diagnostics` tool only reports module import errors even when none appear in the IDE these might be signs of Pyright not detecting the virtual environment.\n\nYou can update your `pyproject.toml` to correctly point it to the virtual environment location.\n\n```toml\n[tool.pyright]\nvenvPath = \".\"\nvenv = \".venv\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-%23007ACC.svg?logo=typescript\u0026logoColor=white\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003eTypeScript\u003c/b\u003e\n\u003c/summary\u003e\n\n### TypeScript Language Server\n\n#### Installation\n\n`npm install -g typescript-language-server`\n\n#### Verify Installation\n\n`typescript-language-server --version`\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        \"typescript-language-server\", \"--stdio\"\n      ],\n      \"env\": {\n        // Keep at least one code file open for search to work\n        \"SYMBOLS_PRELOAD_FILES\": \"src/index.ts\",\n        \"SYMBOLS_DIAGNOSTICS_STRATEGY\": \"push\"\n      }\n    }\n  }\n}\n```\n\n\u003e ℹ️ If you'd rather avoid installing **typescript-language-server** globally and are fine with a slower start up, you can substitute `typescript-language-server --stdio` in the JSON above with `npx -y typescript-language-server --stdio`\n\n#### Troubleshooting\n\n**Search: No results**\n\nFor the search functionality to work the TS Language Server needs to compute the codebase index and keep in memory.\nThis is done by keeping at least one code file open at any time. Use the `SYMBOLS_PRELOAD_FILES=\"src/index.ts` variable with paths to a few files.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-blueviolet?logo=dotnet\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003eRoslyn\u003c/b\u003e\n\u003c/summary\u003e\n\n### Roslyn Language Server\n\n#### Installation\n\nThe official C# Language Server is distributed over the [VS IDE NuGet feed](https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/index.json) as a self-contained executable.\n\nTo facilitate download and extraction we use the `dotnet` CLI with a temporary project file named `ServerDownload.csproj` with the following content:\n\n```xml\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cPropertyGroup\u003e\n    \u003cPackageNameBase\u003eMicrosoft.CodeAnalysis.LanguageServer\u003c/PackageNameBase\u003e\n    \u003cPackageVersion\u003e5.0.0-1.25353.13\u003c/PackageVersion\u003e\n    \u003cRestorePackagesPath  Condition=\" '$(RestorePackagesPath)' == '' \"\u003e/tmp/lsp-download\u003c/RestorePackagesPath\u003e\n    \u003cServerPath Condition=\" '$(DownloadPath)' == '' \"\u003e./LspServer/\u003c/ServerPath\u003e\n    \u003cTargetFramework\u003enet9.0\u003c/TargetFramework\u003e\n    \u003cDisableImplicitNuGetFallbackFolder\u003etrue\u003c/DisableImplicitNuGetFallbackFolder\u003e\n    \u003cAutomaticallyUseReferenceAssemblyPackages\u003efalse\u003c/AutomaticallyUseReferenceAssemblyPackages\u003e\n    \u003cRestoreSources\u003e\n      https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/index.json\n    \u003c/RestoreSources\u003e\n  \u003c/PropertyGroup\u003e\n  \u003cItemGroup\u003e\n    \u003cPackageDownload Include=\"$(PackageNameBase).$(Platform)\" version=\"[$(PackageVersion)]\" /\u003e\n  \u003c/ItemGroup\u003e\n  \u003cTarget Name=\"SimplifyPath\" AfterTargets=\"Restore\"\u003e\n    \u003cPropertyGroup\u003e\n      \u003cPackageIdFolderName\u003e$(PackageNameBase.ToLower()).$(Platform.ToLower())\u003c/PackageIdFolderName\u003e\n      \u003cPackageContentPath\u003e$(RestorePackagesPath)/$(PackageIdFolderName)/$(PackageVersion)/content/LanguageServer/$(Platform)/\u003c/PackageContentPath\u003e\n    \u003c/PropertyGroup\u003e\n    \u003cItemGroup\u003e\n      \u003cServerFiles Include=\"$(PackageContentPath)**/*\" /\u003e\n    \u003c/ItemGroup\u003e\n    \u003cCopy SourceFiles=\"@(ServerFiles)\" DestinationFolder=\"$(ServerPath)%(RecursiveDir)\" /\u003e\n    \u003cRemoveDir Directories=\"$(RestorePackagesPath)\" /\u003e\n  \u003c/Target\u003e\n\u003c/Project\u003e\n```\n\nWe then pick the platform identifier matching the machine from this list:\n\n`win-x64`, `win-arm64`, `linux-x64`, `linux-arm64`, `linux-musl-x64`, `linux-musl-arm64`, `osx-x64`, `osx-arm64` or `neutral`\n\nAnd finally restore the temporary project to trigger the download of the Language Server.\n\nAdjust both `RestorePackagesPath` and `ServerPath` to work on your machine and keep track of the latter.\n\n```sh\ndotnet restore ServerDownload.csproj \\\n  /p:Platform=your-platform-id \\\n  /p:RestorePackagesPath=/tmp/your/download/location \\\n  /p:ServerPath=$HOME/.csharp-lsp\n```\n\n#### Verify Installation\n\nTo verify the outcome of the installation we run the command below\n\n```sh\n$HOME/.csharp-lsp/Microsoft.CodeAnalysis.LanguageServer --version\n```\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        // Adjust this to your installation path\n        \"dotnet\", \"$HOME/.csharp-lsp/Microsoft.CodeAnalysis.LanguageServer.dll\",\n        \"--logLevel=Information\",\n        \"--extensionLogDirectory=$HOME/.csharp-lsp/logs\",\n        \"--stdio\"\n      ],\n      \"env\": {\n        \"SYMBOLS_WORKSPACE_LOADER\": \"roslyn\",\n      }\n    }\n  }\n}\n```\n\n\u003e ℹ️ Roslyn Language Server is also provided with the C# Dev Kit extension for VS Code however the launch command is a bit more complicated and changes each time the extension is updated. If wanting to try it i suggest trying the other modality (`config init` * `start`) which brings a template for the launch command\n\n#### Troubleshooting\n\n**Search: No Results Found**\n\nIf `search` doesn't find results before a file was read for the first time it's possible to warm up by pre-loading a few files from different projects with\n`\"SYMBOLS_PRELOAD_FILES\": \"src/Project/Program.cs\"`\n\n**Linux: Max Number of Inotify Instances Reached**\n\nIf on Linux LSP logs suggest that the maximum number of inotify per user instances has been reached it's possible to increase it with a value greater than the actual\n\n`sudo sysctl fs.inotify.max_user_instances=512`\n\nThis allows the Language Server to keep monitoring files in the Solution/Project\n\nAdditionally JetBrains has more details on [this issue](https://youtrack.jetbrains.com/articles/SUPPORT-A-1715/Inotify-Watches-Limit-Linux)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-%2300599C.svg?logo=c%2B%2B\u0026logoColor=white\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003eClang\u003c/b\u003e\n\u003c/summary\u003e\n\n### Clang for C/C++\n\n#### Verify Installation\n\n`clangd --help` is available\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        \"clangd\",\n        // Provide here more clangd args if needed\n        // e.g. --compile-commands-dir path/to/dir\n      ],\n      \"env\": {\n        \"SYMBOLS_DIAGNOSTICS_STRATEGY\": \"push\",\n        \"SYMBOLS_PRELOAD_FILES\": \"path/to/file.cpp\"\n      }\n    }\n  }\n}\n```\n\n#### Troubleshooting\n\n**General Errors**\n\nEnsure either `compile_commands.json` is found in the working directory or provide its directory path with  `--compile-commands-dir=path/to/dir` \n\n**Search: No Results Found**\n\nIndex is generate when the first file is opened. To warm up is possible to pre load and keep a one or more files opened by providing a list in ` SYMBOLS_PRELOAD_FILES` \n\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-%2300ADD8.svg?logo=go\u0026logoColor=white\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003eGopls\u003c/b\u003e\n\u003c/summary\u003e\n\n### Gopls\n\n#### Installation\n\n```sh\ngo install golang.org/x/tools/gopls@latest\n```\n\n#### Verify Installation\n\n```sh\ngopls version\n```\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        \"gopls\"\n      ],\n      \"env\": {\n        \"SYMBOLS_DIAGNOSTICS_STRATEGY\": \"push\",\n        // Adjust these to your machine\n        \"GOPATH\" : \"$HOME/go\",\n        \"GOCACHE\": \"$HOME/.cache/go-build\",\n        \"GOMODCACHE\": \"$HOME/go/pkg/mod\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-%23000000.svg?logo=rust\u0026logoColor=white\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003eRust-analyzer\u003c/b\u003e\n\u003c/summary\u003e\n\n### Rust-analyzer\n\n#### Installation\n\n```sh\nrustup component add rust-analyzer\n```\n\n#### Verify Installation\n\n```sh\nrust-analyzer --version\n```\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        \"rust-analyzer\"\n      ]\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \n\u003csummary\u003e\n  \u0026nbsp;\n  \u003cpicture\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-ED8B00?logo=openjdk\u0026logoColor=white\" valign=\"middle\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n  \u003cb\u003eEclipse JDT\u003c/b\u003e\n\u003c/summary\u003e\n\n### Eclipse JDT Language Server\n\n#### Installation\n\nFollow installation instructions on the [Project's GitHub README](https://github.com/eclipse-jdtls/eclipse.jdt.ls?tab=readme-ov-file#installation)\n\n#### Verify Installation\n\nAdjust to your installation path and test\n\n```sh\n$HOME/.java-lsp/jdtls/bin/jdtls --help\n```\n\n#### Configuration\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"run\",\n        // Adjust this or remove it (defaults to current directory)\n        \"-w\", \"optional/path/to/workspace\",\n        \"$HOME/.java-lsp/jdtls/bin/jdtls\",\n        \"-configuration\", \"$HOME/.cache/jdtls/config\",\n        \"-data\", \"$HOME/.cache/jdtls/workspace/$SYMBOLS_WORKSPACE_NAME\"\n      ],\n      \"env\": {\n        \"SYMBOLS_DIAGNOSTICS_STRATEGY\": \"push\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n### Auto-detection (`config` \u0026 `start` commands)\n\nIf you prefer to keep your MCP config minimal and portable, it's possible to move Language Server definitions out to a dedicated file and have the MCP server read from there and auto-detect which Language Server to launch depending on the codebase.\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  🆕\n  \u0026nbsp;\n  \u003cb\u003e1. \u003ccode\u003econfig init\u003c/code\u003e\u003c/b\u003e\n\u003c/summary\u003e\n\n#### Initialize Config\n\n**User-wide**\n\nTo create a user-wide config file run the following command\n\n`npx -y \"@p1va/symbols@latest\" config init --global`\n\nThis will create a configuration file to be found at:\n\n- On Linux: `~/.config/symbols-nodejs/language-servers.yaml`\n- On MacOS: `~/Library/Preferences/symbols-nodejs/language-servers.yaml`\n- On Windows: `%APPDATA%\\symbols-nodejs\\Config\\language-servers.yaml`\n\n**Workspace (Defaults to Current Directory)**\n\nTo create a workspace config file run this instead\n\n`npx -y \"@p1va/symbols@latest\" config init -w path/to/workspace`\n\n- Will initialize `path/to/workspace/language-servers.yaml`\n\n`npx -y \"@p1va/symbols@latest\" config init` \n\n- Will initialize `./language-servers.yaml`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  ⚙️\n  \u0026nbsp;\n  \u003cb\u003e2. \u003ccode\u003econfig show\u003c/code\u003e\u003c/b\u003e\n\u003c/summary\u003e\n\n#### Tweak Config\n\nUse your editor (here i use `code`) to tweak the generated config file and comment, uncomment or add new language servers.\n\n`code $(npx -y @p1va/symbols config path)`\n\n#### Show Active Config\n\nFinally run the command in your workspace (e.g. where you launch Claude Code) to see that the changes are being applied\n\n`npx -y @p1va/symbols config show`\n\n`npx -y @p1va/symbols config show -w path/to/workspace`\n\n`npx -y @p1va/symbols config show -c path/to/config.yaml`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n  \u0026nbsp;\n  ⚡️\n  \u0026nbsp;\n  \u003cb\u003e3. \u003ccode\u003estart\u003c/code\u003e\u003c/b\u003e\n\u003c/summary\u003e\n\nUpdate your MCP configuration with this MCP server. The first Language Server having `workspace_files` matching any of the files seen at the root of the workspace will be launched\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"symbols\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"@p1va/symbols@latest\", \"start\",\n        // Defaults to current directory\n        \"-w\", \"optional/path/to/workspace\",\n        // Defaults to language-servers.yaml in current workspace\n        \"-c\", \"optional/path/to/config.yaml\",\n      ]\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n## Development\n\n- `pnpm lint` outputs the lint violations\n- `pnpm lint:fix` attempts to fix lint violations\n- `pnpm format` formats the codebase\n- `pnpm dev` starts in development mode\n- `pnpm build` runs the linter and build\n- `pnpm start` starts the built artifacts\n- `pnpm test:unit` runs the unit tests\n- `pnpm test:integration:{language id}` runs the integration tests for a given language\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp1va%2Flsp-use","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp1va%2Flsp-use","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp1va%2Flsp-use/lists"}