mcpField
M
MsgPack (LsMsgPack)

MsgPack (LsMsgPack)

Local
github.comDeveloper Tools35Updated today

About MsgPack (LsMsgPack)

An MCP server and command line tool that decodes MsgPack data into text that AI agents and people can read, and reads byte variables from programs paused in VS Code or Visual Studio. It targets developers debugging MsgPack payloads.

Key features

  1. 01Decodes MsgPack into commented JSON output
  2. 02Resolves LsMsgPack indexed schemas and type ids
  3. 03Reads byte data from variables while debugging
  4. 04Checks data against compiled .NET classes
  5. 05Explains bytes by offset and searches values
  6. 06Usable from the command line

Use cases

  1. 01Inspecting a MsgPack payload in a paused program
  2. 02Finding mismatches between MsgPack data and .NET class properties
  3. 03Viewing binary messages in a terminal or AI assistant

MCP support

The project is an MCP server that provides tools such as msgpack_decode and msgpack_debug_read to MCP clients for decoding data and reading bytes from debug sessions.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository
Packages
nugetLsMsgPack.Mcp2026.10.27.1

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

LsMsgPack MCP server

MsgPack for AI agents. An MCP server and a command line tool that decode MsgPack data into text an AI (or a person in a terminal) can read, and that read the bytes of a variable of a program paused in the debugger of VS Code or Visual Studio.

Language models read text, not bytes. Hex or base64 costs several tokens per byte, and decoding it by hand is slow and error-prone. Some data can't be decoded from the bytes at all: LsMsgPack's indexed schema writes property names as indexes, and a schema reference holds only the 16-byte id of the schema. This tool decodes the data with the LsMsgPack library itself (the code of MsgPack Explorer) and writes it as JSON with comments:

MsgPack "doc1" 247 bytes from payload (byte[], Launch Api).
Structure: indexed schema (inline, 3 types) followed by the body
No errors, 0 warnings or comments.
Schema (inline): type ids and property ids in the body are indexes into these lists.
  #0 Invoice: Id, Customer, Billing, Lines, Date, Reference, Tags
  #1 Address: Street, Number, City
  #2 Line: Product, Quantity, Price

Objects (JSON with // comments: a type name comes from a type id, a name with ~ is inferred from the schema; dictionary keys that are not strings are not quoted):
{ // Invoice~
  "Id": 1234,
  "Customer": "Alice",
  "Billing": { "Street": "Main street", "Number": 12, "City": "Amsterdam" }, // Address~
  "Lines": [ // 2 items
    { "Product": "Apples", "Quantity": 3, "Price": 1.25 }, // Line~, Price: decimal
    { "Product": "Pears", "Quantity": 2, "Price": 0.99 } // Line~, Price: decimal
  ],
  "Date": "2026-10-05T12:30:00Z", // timestamp
  "Reference": "5bad8f0fcbd99f46a16570867728950e", // bin, 16 bytes, as Guid 0f8fad5b-d9cb-469f-a165-70867728950e
  "Tags": ["fruit", "fresh"] // 2 items
}

It reads any MsgPack, not only data written by LsMsgPack. Errors come with their offset, and the values read after an error are marked.

Install

Requires the .NET runtime 8 or later.

dotnet tool install -g LsMsgPack.Mcp      # the command is lsmsgpack-mcp

From source: dotnet publish LsMsgPackMcpServer -c Release -o <folder>, then run dotnet <folder>/LsMsgPackMcp.dll in place of lsmsgpack-mcp.

Add it to your agent

ClientHow
VS Code (Copilot agent mode)Nothing to do with the MsgPack Explorer extension: it registers the server "MsgPack (LsMsgPack)".
Claude Codeclaude mcp add lsmsgpack -- lsmsgpack-mcp
Visual Studio 2022 (17.14+)%USERPROFILE%\.mcp.json (or .mcp.json next to the solution): { "servers": { "lsmsgpack": { "type": "stdio", "command": "lsmsgpack-mcp" } } }
Claude Desktop, Cursor, Windsurf...{ "mcpServers": { "lsmsgpack": { "command": "lsmsgpack-mcp" } } }

In VS Code, MsgPack: Copy MCP Server Configuration... copies these: for the tool when it is installed, otherwise for the server that comes with the extension (its path has the extension's version in it, so copy it again after an update).

Tools

ToolWhat it does
msgpack_debug_statusThe IDEs with the MsgPack extension, their debug sessions, and where the program is paused.
msgpack_debug_localsThe variables of the paused stack frame with their types. The ones that can hold bytes are marked.
msgpack_debug_readReads the bytes of an expression in the paused program and decodes them. Reads byte[], streams (seekable ones go back to their position), Memory<byte>, List<byte>, HttpContent and base64 or hex strings. In VS Code also JavaScript Uint8Array/Buffer and Python bytes. schemaStore reads the schema from the program's SchemaStore when the payload refers to one. saveTo also writes the bytes to a file.
msgpack_decodeDecodes data (hex, base64 or byte values), a file, or a doc decoded before. schemas takes a SchemaStore.Export (or one schema) for schema references.
msgpack_read_as_classReads the data into a class of a compiled .NET assembly (assembly: the .dll of the build output, type: the class) and reports what doesn't match: properties the class doesn't have (with "did you mean"), values that don't convert, classes without a schema entry, type ids that aren't found, with the paths of the objects (reporting differences). Also shows the object that was read. The assembly is loaded in a separate process: it runs the class's constructors and setters.
msgpack_explain_offsetWhat the byte at an offset is: the items holding it, the object member, the header and content bytes, and the bytes around it.
msgpack_searchThe items holding a text or a value, with offsets and object paths.

Every decoded payload gets a document id (doc1, doc2...) for follow-up calls. The output can be narrowed and switched with these options:

  • view: objects (default), items (the MsgPack encodings with offsets) or both.
  • path (e.g. Lines[2]), from/to (a byte range), maxNodes, maxString.
  • offsets adds the offset of every value. issues takes errors, all or none.
  • endian and continueOnError (on by default).

Debugging

The MsgPack extensions of VS Code (MsgPack Explorer) and Visual Studio (MsgPack Debugger Extension) listen on 127.0.0.1. They write a lock file with their port and a random token to ~/.lsmsgpack/ide (%USERPROFILE%\.lsmsgpack\ide). The MCP server uses the IDE that started it, otherwise the one whose workspace holds its working directory (ide picks one when several run).

  • By default only variable and member paths are read (buffer, this._payload, response.Content, items[2].Data), no method calls. The IDE setting can allow any expression: lsmsgpack.mcp.allowAnyExpression in VS Code (user settings only), Tools > Options > MsgPack Explorer in Visual Studio.
  • A stream that can't seek is consumed by reading it, so the IDE asks the user first.
  • The IDE settings can turn the bridge off: lsmsgpack.mcp.enabled in VS Code, and the same options page in Visual Studio.

Command line

lsmsgpack-mcp decode payload.msgpack                # the objects
lsmsgpack-mcp decode payload.msgpack --view items   # the items with offsets and encodings
lsmsgpack-mcp decode --data "82 a4 4e 61 6d 65 ..." # bytes as text
lsmsgpack-mcp explain payload.msgpack 0x7b          # what the byte at 0x7b is
lsmsgpack-mcp search payload.msgpack Amsterdam
lsmsgpack-mcp read-as payload.msgpack --assembly bin/Debug/net8.0/MyApp.dll --type Order   # what doesn't match the class
lsmsgpack-mcp debug status | debug locals | debug read <expression>

lsmsgpack-mcp --help lists the options. Without arguments it runs the MCP server on stdin/stdout.

More: docs/Mcp.md.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.