Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Encode, decode, and convert numbers across FP32, FP16, BF16, TF32, FP8/6/4, and integer formats.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"fp-conv": {
"command": "npx",
"args": [
"-y",
"fp-conv-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add fp-conv -- npx -y fp-conv-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"fp-conv": {
"command": "npx",
"args": [
"-y",
"fp-conv-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"fp-conv": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"fp-conv-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 sw23 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.5.1)于7天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Date Math
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Exact date/time math for agents: business days, holidays, time zones, cron, RRULE, SLA. x402 paid.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Model Context Protocol (MCP) server that gives AI agents direct, local tools for floating-point conversions. It is the server-side companion to the fp-conv web app and reuses the same conversion library.
Encode, decode, and convert numbers across FP32, FP64, FP16, BF16, TF32, FP8, FP6, FP4, MX scale/element types, signed/unsigned ints, and custom formats. Supports rounding modes, overflow (saturation) behavior, and calculates precision loss.
| Tool | Description |
|---|---|
list_formats | List all available format presets (keys, names, categories, parameters). |
get_format_info | Get detailed information about a format (bias, range, special-value support). |
encode_number | Encode a decimal value (or Infinity/NaN) into a format. Returns binary, hex, and components. |
decode_bits | Decode a binary or hex bit-pattern into a format. Returns the decimal value and components. |
convert_format | Convert a value from one format to another. |
For convert_format, the source is either a value, constructed using the input format's standard defaults, or bits, a binary or hex bit pattern in the input format used exactly as given; exactly one of the two is required. Its roundingMode and overflowMode parameters apply only when encoding the output format. encode_number applies those parameters to its sole format.
convert_format also takes nanMode, which decides what a NaN source becomes: canonical (default) gives the output format's canonical quiet NaN, and preserve keeps the sign and as many high-order payload bits as fit, quieted (IEEE 754-2019 §6.2.3). A NaN's sign and payload exist only in its bit pattern, so give it as bits: { "bits": "0xFFC00000", "inputFormat": "fp32", "outputFormat": "fp16", "nanMode": "preserve" } returns 0xFE00, where canonical returns 0x7E00. See NaN behavior.
All tools accept either a preset key (string) or a custom format object.
| Category | Keys |
|---|---|
| IEEE 754 | "fp64", "fp32", "fp16" |
| ML | "bf16", "tf32" |
| OCP | "fp8_e5m2", "fp8_e4m3", "fp6_e3m2", "fp6_e2m3", "fp4_e2m1", "e8m0", "mxint8" |
| Integer | "int32", "uint32", "int16", "uint16", "int8", "uint8", "int4", "uint4" |
For floating-point:
{ "signBits": 1, "exponentBits": 5, "mantissaBits": 10, "bias": 15, "hasInfinity": true, "hasNaN": true }
| Field | Required | Description |
|---|---|---|
signBits | no | Number of sign bits, 0 or 1 (default 1) |
exponentBits | yes | Number of exponent bits |
mantissaBits | yes | Number of mantissa (fraction) bits |
bias | no | Exponent bias; defaults to 2^(exponentBits-1) - 1 |
hasInfinity | no | Whether the format can represent ±Infinity (default true) |
hasNaN | no | Whether the format can represent NaN (default true). Decided by the layout when hasInfinity is set: true with a mantissa field (passing false there is an error), false without one |
hasSubnormals | no | Whether exponent field 0 is a subnormal/zero region (default true). Set false for a scale type such as E8M0. |
For integers:
{ "bits": 16, "signed": true }
| Field | Required | Description |
|---|---|---|
bits | yes | Total bit width (1–64) |
signed | no | true for signed two's-complement, false for unsigned (default true) |
fractionBits | no | Implicit 2^-fractionBits scale (default 0; MXINT8 uses 6) |
symmetric | no | Leave the most-negative encoding unused so the range is symmetric (default false) |
Precision note: encoding, decoding and conversion are exact at every
width. A value a JSON number could not name exactly (a 64-bit integer's
maximum, a mantissa wider than 53 bits, a magnitude outside fp64's range) is
returned as a decimal digit string rather than a rounded number. Every flag
in a custom format, when given, must be a JSON boolean.
Refer to the following examples with details on how to configure the MCP server:
.vscode/mcp.json){
"servers": { "fp-conv": { "type": "stdio", "command": "npx", "args": ["-y", "fp-conv-mcp"] } } }
claude mcp add fp-conv -- npx -y fp-conv-mcp
copilot mcp add fp-conv -- npx -y fp-conv-mcp
.cursor/mcp.json) / Windsurf / Claude Desktop{
"mcpServers": { "fp-conv": { "command": "npx", "args": ["-y", "fp-conv-mcp"] } } }
~/.gemini/config/mcp_config.json){
"mcpServers": { "fp-conv": { "command": "npx", "args": ["-y", "fp-conv-mcp"] } } }
Alternatively, the server can run a local Streamable HTTP endpoint:
npm install -g fp-conv-mcp
fp-conv-mcp --http --host 127.0.0.1 --port 3001
Security: The HTTP transport has no authentication and binds to
127.0.0.1
by default. Do not bind it to a non-loopback interface unless you add your own
authentication and understand the implications.
To block DNS-rebinding and cross-site requests from web pages, the server
refuses (403) a request whose
Hostis not a loopback name or the--host
address, and one whose
Originnames any other host. A wildcard bind
(
--host 0.0.0.0) cannot know its own names, so it skips theHostcheck and
only accepts an
Originthat is loopback or matches theHost. Request
bodies are capped at 1 MiB, and a session idle for 30 minutes is closed.
Once connected, you can ask an agent things like:
0x3E00 decode to?"Use the MCP Inspector:
npx @modelcontextprotocol/inspector npx fp-conv-mcp
Then open the Tools tab, click List Tools, and try any tool.
This package lives in the fp-conv repository as an npm workspace. The published bundle (dist/index.js) inlines the shared conversion engine (lib/floating-point.js) and tool definitions (src/webmcp.js) from the repo root via esbuild, keeping a single source of truth.
npm install # from the repo root
npm run build --workspace fp-conv-mcp npm test --workspace fp-conv-mcp
MIT © Spencer Williams