Second Life MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Second Life MCP Look up llGetNotecardLineSync in the LSL reference"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Second Life MCP
Offline MCP tools for Second Life LSL and SLua: API reference, caveats, migration guidance and optional local compilation. Includes 1,640 LSL and 1,993 SLua records from pinned official sources.
Install
Requires Python 3.11+. Install the 1.0.0 release in your Python environment:
python -m pip install https://github.com/voidel/second-life-mcp/releases/download/v1.0.0/second_life_mcp-1.0.0-py3-none-any.whlThe release includes a source archive and SHA-256 checksums. The package is not published to PyPI. Normal use requires no network, credentials or Second Life account.
Related MCP server: ACE-MCP
Connect
Add this to your MCP client's configuration, replacing the interpreter path:
{
"mcpServers": {
"second-life": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["-m", "second_life_mcp"]
}
}
}On Windows, use the environment's Scripts\python.exe. Client-specific examples:
Claude Code and VS Code.
The server uses stdio and waits for MCP requests. Use lsl_mcp or slua_mcp
instead of second_life_mcp for a single language. Console commands are
second-life-mcp, lsl-mcp and slua-mcp.
Tools
Tool names start with lsl_ or slua_. All are read-only.
Suffix | Purpose |
| Coverage, source revisions and review dates |
| Exact signature, parameter semantics, source and caveats |
| Literal search with filters and pagination |
| Lexical diagnostics with line and column |
| Optional local compilation and SLua type checking |
| Reviewed pitfalls by topic |
| LSL/SLua API and behavior comparisons |
Examples:
slua_lookup_symbol:{"name":"LLTimers:every"}lsl_migration_guidance:{"symbol":"llSetTimerEvent"}lsl_get_guidance:{"topic":"async-recovery"}
Status is also available through lsl://status and slua://status resources.
Lookups include index origins, enum/boolean semantics, permissions and provenance
where verified. Unknown symbols are not automatically corrected or declared invalid.
Compiler setup
second-life-toolchains --output-dir .toolchainsThis downloads the hash-pinned SLua v0.732.17 compiler and luau-lsp 1.70.1 analyzer
for Windows/Linux x86-64. Set SECOND_LIFE_MCP_TOOLCHAINS in your MCP host's
environment to the absolute .toolchains/toolchains.json path.
LSL uses SLua's LSL compiler frontend; SLua uses compilation and optional type analysis against the bundled official definitions. Checks are time-limited, verify executable hashes and never execute submitted code. Single-file checks do not resolve imports. No compiler is downloaded during MCP requests.
Limits and sources
check_code is lexical, not compilation. It does not establish types, callback
lifecycles or runtime safety; SLua backtick interpolation bodies are not inspected.
Compilation also cannot verify simulator timing, memory, throttles or rendering.
Empty caveats do not prove safety, and a null delay means unknown. Confirm SLua
viewer/region support before deployment.
References use the Second Life Wiki, creation documentation and pinned official definitions. Import dates and manual review dates are recorded separately.
Development
python -m pip install uv==0.13.7
uv sync --locked --extra dev
uv run --no-sync python -m pytest
uv run --no-sync second-life-evaluate
uv run --no-sync python -m buildFor compiler and fixed native-runtime tests, fetch the toolchains above and set
SECOND_LIFE_MCP_TOOLCHAINS and SECOND_LIFE_MCP_TEST_RUNTIME to the absolute
toolchains.json and test-runtime.json paths. CI tests Windows/Linux with
Python 3.11–3.13. Evaluations exercise real MCP transport, not in-world behavior.
second-life-source-audit checks upstream fingerprints. To prepare a reviewable
reference update without changing bundled data:
second-life-update --output-dir candidate --cache-dir .source-cacheReview candidates before applying them. See contributing and data attribution.
Release 1.0.0
Canonical index, enum and boolean semantics, permissions and purity metadata.
Expanded SLua migration guidance and behavior caveats.
Native semantic regressions and stable wheel/source releases with checksums.
Available Tools
14 toolslsl_check_codeARead-onlyIdempotent
Run language-specific lexical checks; this is not compilation or type checking.
Inputs: code (required). Returns: object
lsl_compile_codeARead-onlyIdempotent
Run configured, hash-pinned local compilers; never execute submitted scripts. Separate from lexical checks.
Inputs: code (required). Returns: object
lsl_get_guidanceBRead-onlyIdempotent
Read source-backed pitfalls and LSL-to-SLua migration notes by topic.
Inputs: topic. Returns: object
lsl_lookup_symbolARead-onlyIdempotent
Exact, case-sensitive symbol lookup with official source, caveats and review date.
Inputs: name (required). Returns: object
lsl_migration_guidanceARead-onlyIdempotent
Review exact per-API counterparts and event, timer, table, numeric and conversion differences. No automatic source rewriting.
Inputs: topic, symbol. Returns: object
lsl_reference_statusBRead-onlyIdempotent
Report source-scoped reference coverage, revisions and manual review dates.
Inputs: no named parameters. Returns: object
lsl_search_referenceBRead-onlyIdempotent
Literal word search with deterministic ranking and bounded pagination.
Inputs: query (required), kind, limit, offset. Returns: object
slua_check_codeARead-onlyIdempotent
Run language-specific lexical checks; this is not compilation or type checking.
Inputs: code (required). Returns: object
slua_compile_codeARead-onlyIdempotent
Run configured, hash-pinned local compilers; never execute submitted scripts. Separate from lexical checks.
Inputs: code (required). Returns: object
slua_get_guidanceBRead-onlyIdempotent
Read source-backed pitfalls and LSL-to-SLua migration notes by topic.
Inputs: topic. Returns: object
slua_lookup_symbolARead-onlyIdempotent
Exact, case-sensitive symbol lookup with official source, caveats and review date.
Inputs: name (required). Returns: object
slua_migration_guidanceCRead-onlyIdempotent
Review exact per-API counterparts and event, timer, table, numeric and conversion differences. No automatic source rewriting.
Inputs: topic, symbol. Returns: object
slua_reference_statusBRead-onlyIdempotent
Report source-scoped reference coverage, revisions and manual review dates.
Inputs: no named parameters. Returns: object
slua_search_referenceCRead-onlyIdempotent
Literal word search with deterministic ranking and bounded pagination.
Inputs: query (required), kind, limit, offset. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Within each language family the seven operations are clearly distinct (status, lookup, search, lexical check, compile, guidance, migration guidance). The main risk is cross-family confusion: lsl_* and slua_* pairs are near-identical apart from the language, so an agent unsure which language a snippet belongs to could misselect. Guidance and migration_guidance also overlap conceptually as 'read source-backed notes'.
Every tool follows the same {language}_{verb}_{noun} pattern, with parallel naming across LSL and SLua (lookup_symbol, search_reference, check_code, compile_code, get_guidance, migration_guidance). No stylistic drift or mixed conventions.
14 tools sits comfortably in the well-scoped 3-15 range. The count is inflated only by exact duplication across two symmetric language families, which is defensible but means there are effectively seven distinct operations.
The surface covers the plausible workflow: reference status, symbol lookup, search, lexical checks, compilation, guidance, and migration mapping. Minor gaps: no way to enumerate available guidance topics or browse/list symbols, so discovery relies entirely on search and exact lookup.
Maintenance
Related MCP Connectors
Lean 4 MCP server: compile, prove theorems, and formalize math with Mathlib.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
The official Svelte MCP server providing docs and autofixing tools for Svelte development
MCP server for StyleKit styles, tokens, recipes, lint and repair over stdio or HTTP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes Language Server Protocol (LSP) tools such as diagnostics, goto definition, find references, symbols, and rename as a stdio MCP server.8MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to perform local code search, indexing, and analysis across Java, JavaScript/TypeScript, .NET/C#, and Python projects through the MCP protocol.1Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA single MCP server that bridges to any LSP, enabling code intelligence features like hover, go-to-definition, references, and diagnostics for multiple languages via configurable language servers.1-
- FlicenseNot gradedqualityBmaintenanceEnables MCP clients to analyze call graphs, run Grover-ranked code searches, generate boundary test cases, get refactoring suggestions, and inspect quantum backends through stdio JSON-RPC tools.2-