mcp-server

openfacet/mcp-server

3.3

If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The OpenFacet MCP Server is a Model Context Protocol implementation designed to provide real-time diamond pricing data using interpolation algorithms and market depth analytics.

Tools
3
Resources
0
Prompts
0

OpenFacet MCP Server

MCP Protocol License: MIT Node.js Version

A Model Context Protocol (MCP) implementation for the OpenFacet Diamond Pricing API. Provides transparent, real-time diamond pricing data with interpolation algorithms and market depth analytics.

Built with vanilla JavaScript and core modules only - zero external dependencies.

Features

  • Implements MCP 2025‑06‑18 (no batch support, structured content, version headers)
  • Tools: get_diamond_price, get_dcx_index, get_market_depth
  • Real-time interpolation over carat/color/clarity
  • DCX Index and inventory snapshot with daily refresh
  • Single-file deployable; no dependencies
  • Runtime adapters:
    • Node.js: HTTP server, CORS, configurable port
    • Cloudflare Worker: single fetch entrypoint

Project Structure

mcp-server/
├── core.js         # Shared logic, tool handlers, interpolation
├── stdio.js        # Local stdio transport
├── node.js         # Node.js HTTP server (PORT via CLI or env)
├── worker.js       # Remote Cloudflare Worker
├── test-core.js    # Vanilla JS test runner
├── mcp-version.js  # Protocol version constant
└── README.md

Usage

Requires Node.js ≥18, clone the repository:

git clone https://github.com/openfacet/mcp-server.git
cd mcp-server

Local stdio Transport

The stdio transport is the default for most MCP clients.

# Start the server
node stdio.js

Send a message (paste this JSON and press Enter):

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_diamond_price","arguments":{"carat":1.23,"color":"G","clarity":"VS2"}}}

You'll get a response like:

{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"💎 **Diamond Price Quote**\n\n**Specifications:**\n• Carat: 1.23ct\n• Color: G\n• Clarity: VS2\n• Shape: round\n\n**Pricing:**\n• Per Carat: $4,487\n• Total Price: $5,519.01\n\n*Prices from OpenFacet.net API*"}],"_meta":{"timestamp":"2025-07-11T10:21:50.460Z","source":"OpenFacet.net API"}}}

Local Node.js HTTP server

Default binds to localhost:3000/. Available endpoints:

  • POST /: JSON-RPC entrypoint
  • GET /health: Server status
  • GET /.well-known/mcp.json: Discovery metadata

Remote MCP Server

Remote server for testing https://mcp.openfacet.net. Example price query:

curl -X POST https://mcp.openfacet.net/ \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_diamond_price",
      "arguments": {
        "carat": 1.23,
        "color": "G",
        "clarity": "VS2"
      }
    }
  }'

Tool Summary

get_diamond_price

Returns interpolated pricing for round/cushion GIA diamonds.

Parameters:

  • carat: number (0.3–6.0)
  • color: string (D–M)
  • clarity: string (FL–I3)
  • shape: string (optional, default: "round")

get_dcx_index

Returns composite index of diamond price trends. No parameters.

get_market_depth

Returns inventory data. Optional parameter:

  • carat: number

Testing

node test-core.js

Covers:

  • Interpolation behavior
  • DCX/market depth parsing
  • Error conditions
  • JSON-RPC correctness

Technical Notes

Interpolation

  • Log-space interpolation across fixed breakpoints
  • Anchor smoothing near psychological thresholds (0.3, 0.5, 1.0, etc.)
  • Dynamic boost if price trend continues beyond a band

Specifications