プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。プロトタイプ · 30分ごとに更新
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

InferMap

作者:benseverndev-ossバージョン 0.7.0i★ 0iパソコンでもクラウドでも
レジストリ名io.github.benseverndev-oss/infermap

インストール方法

What it does

Map messy columns to a known schema — 7 scorers, domain dictionaries, F1 0.84. Zero config.

  • Connects パソコンでもクラウドでも
  • Account or key No key needed
  • Category 旅行・地図・天気

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 2/4 合格 · あなたのパソコンで動きます

一部のコマンドを隠しています

URL でつなぐ:確認時にサーバーのアドレスが応答しませんでした

代わりに「このパソコンで動かす」を使えます。手順は下にあります

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  3. この設定を貼り付けて保存

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  4. Claude を終了してもう一度開く

  5. 試してみる

    InferMap を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が InferMap を使っていると言うか、回答に InferMap のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ InferMap につなげません

InferMap はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · InferMap につなげるアプリを使う

  • 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)
  • 先にパソコンへ Python (uv) を入れてください(1 回だけ)

B · 旅行・地図・天気 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  3. このコマンドを貼り付けて Enter

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  4. Claude Code で /mcp と入力

    InferMap が一覧にあり、接続済みと表示されれば OK です

  5. 試してみる

    InferMap を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が InferMap を使っていると言うか、回答に InferMap のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. このボタンで Cursor を開く

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  3. Cursor の AI チャットを Agent モードで開く

  4. 試してみる

    InferMap を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が InferMap を使っていると言うか、回答に InferMap のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

先にパソコンへ Python (uv) を入れてください(1 回だけ)

  1. Python (uv) を入れる

    1 回だけ。Python (uv) が必要なすべてのサーバーで使えます

    Python (uv) のダウンロードページを開く ↗

  2. このボタンで VS Code を開く

    コマンドを確認中 · 確認が通るとコピーボタンが出ます

  3. VS Code の AI チャットを Agent モードで開く

  4. 試してみる

    InferMap を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が InferMap を使っていると言うか、回答に InferMap のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?InferMap を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

コマンドを確認中 · 確認が通るとコピーボタンが出ます

Claude Desktop (claude_desktop_config.json)

コマンドを確認中 · 確認が通るとコピーボタンが出ます

Cursor (~/.cursor/mcp.json)

コマンドを確認中 · 確認が通るとコピーボタンが出ます

VS Code (mcp.json)

コマンドを確認中 · 確認が通るとコピーボタンが出ます

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
45/週
接続方法
パソコンでもクラウドでも
最新バージョンi
0.7.0
レジストリ公開日i
2026年8月16日
コードの最終更新i
2026年5月1日
作者
benseverndev-oss
パッケージ
pypi: infermap
ウェブサイト
benseverndev-oss.github.io
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

インターネット経由でつなげるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

前回チェックしたときにサーバーが応答しなかったため、ツールを読み取れませんでした。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント benseverndev-oss で確認済みです

  • ✕ 不合格

    今もメンテナンスされている

    1年以上コードの更新がないか、リポジトリがアーカイブされています

  • ✓ 合格

    ライセンスがある

    MITを使用

  • ✕ 不合格

    エンドポイントが応答する

    チェックしたとき、6秒以内に応答がありませんでした

  • – 対象外

    OAuthでサインイン

    チェックしたとき、6秒以内に応答がありませんでした

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

旅行・地図・天気のほかのサーバーとの比較i

  • このカテゴリのほかの1861件のうち0%よりスターが多い
  • このカテゴリのほかの1861件のうち22%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1861件のうち9%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

InferMapは安全ですか?

当てはまる基本チェック4項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は7 か月前、最新バージョン(0.7.0)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URL で接続するので、リモート MCP を受け付けるアプリでも使えます。例:Web 版 ChatGPT(Business 以上はフル MCP、Pro は読み取りのみ)。

代わりに使えるものは?

同じカテゴリには:LetsFG — Flights & Hotels, Google Maps MCP Server, Mu

同じカテゴリのほかの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

LetsFG — Flights & Hotels

Search and book flights and hotels: hundreds of airlines, plus bookable hotel rates.

作者:LetsFG広く使われている↓ 204/週★ 22672 か月前更新

パソコンでもクラウドでも

Google Maps MCP Server

18 Google Maps tools for AI agents — geocode, search, directions, weather, and more.

作者:cablate成長中↓ 1257/週★ 4962 か月前更新

パソコンで動く

Mu

News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.

作者:micro成長中★ 4393 か月前更新

クラウドで動く✓ micro.mu

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Moved. This repo has moved into the benzsevern/goldenmatch monorepo at packages/python/infermap (and packages/typescript/infermap)/. This repo is archived; new development happens in the monorepo.

infermap

Inference-driven schema mapping engine.

Map messy source columns to a known target schema — accurately, explainably, with zero config.

Built by Ben Severn .

📖 Wiki · 🌐 Docs · 🧪 Examples · 💬 Discussions · 🐛 Issues


infermap is a schema-mapping engine. Give it any two field collections (CSVs, DataFrames, database tables, in-memory records) and it figures out which source field corresponds to which target field, with confidence scores and human-readable reasoning. Available as a Python package on PyPI and a TypeScript package on npm, with mapping decisions verified bit-for-bit by a shared golden-test parity suite.

Table of contents

  • Install
  • Quick start
  • How it works
  • Features
  • Which package should I use?
  • Custom scorers
  • CLI examples
  • Config reference
  • Documentation
  • License

Install

Python
pip install infermap

Optional database extras:

pip install infermap[postgres]   # psycopg2-binary

pip install infermap[mysql] # mysql-connector-python pip install infermap[duckdb] # duckdb pip install infermap[all] # all extras

TypeScript / Next.js
npm install infermap

Zero runtime dependencies in the core entrypoint. Compatible with Next.js Server Components, Route Handlers, Server Actions, and the Edge Runtime out of the box. See the package README for the full reference.

Quick start

Python
import infermap

Map a CRM export CSV to a canonical customer schema

result = infermap.map("crm_export.csv", "canonical_customers.csv")

for m in result.mappings: print(f"{m.source} -> {m.target} ({m.confidence:.0%})")

fname -> first_name (97%)

lname -> last_name (95%)

email_addr -> email (91%)

Apply mappings to rename DataFrame columns

import polars as pl df = pl.read_csv("crm_export.csv") renamed = result.apply(df)

Save mappings to a reusable config file

result.to_config("my_mapping.yaml")

Reload later — no re-inference needed

saved = infermap.from_config("my_mapping.yaml")

TypeScript
import { map } from "infermap";

const crm = [ { fname: "John", lname: "Doe", email_addr: "j@d.co" }, { fname: "Jane", lname: "Smith", email_addr: "j@s.co" }, ];

const canonical = [ { first_name: "", last_name: "", email: "" }, ];

const result = map({ records: crm }, { records: canonical });

for (const m of result.mappings) { console.log(${m.source} → ${m.target} (${m.confidence.toFixed(2)})); } // fname → first_name (0.44) // lname → last_name (0.48) // email_addr → email (0.69)

For Next.js, drop it directly into a Route Handler — works on Edge Runtime with zero config:

// app/api/infer/route.ts

import { map } from "infermap"; export const runtime = "edge";

export async function POST(req: Request) { const { sourceCsv, targetCsv } = await req.json(); const result = map({ csvText: sourceCsv }, { csvText: targetCsv }); return Response.json(result); }

How it works

Each field pair runs through a pipeline of 7 scorers. Each scorer returns a score in [0.0, 1.0] or abstains (None/null). The engine combines scores via weighted average (requiring at least 2 contributors), then uses the Hungarian algorithm for optimal one-to-one assignment.

ScorerWeightWhat it detects
ExactScorer1.0Case-insensitive exact name match
AliasScorer0.95Known field aliases (fname ↔ first_name, tel ↔ phone) + domain dictionaries
InitialismScorer0.75Abbreviation-style names (assay_id ↔ ASSI, confidence_score ↔ CONSC)
PatternTypeScorer0.7Semantic type from sample values — email, date_iso, phone, uuid, url, zip, currency
ProfileScorer0.5Statistical profile similarity — dtype, null rate, unique rate, length, cardinality
FuzzyNameScorer0.4Jaro-Winkler similarity on normalized field names (with common-prefix canonicalization)
LLMScorer0.8Pluggable LLM-backed scorer (stubbed by default)

The engine also applies common-prefix canonicalization — automatically stripping schema-wide prefixes like prospect_ so that City vs prospect_City is compared as City vs City. And optional confidence calibration transforms raw scores into calibrated probabilities post-assignment (ECE from 0.46 to 0.005 on real-world data).

Read the full architecture →

Features

PythonTypeScript
7 built-in scorers✅✅
Hungarian assignment✅ (scipy)✅ (vendored)
Custom scorers@infermap.scorerdefineScorer()
Domain dictionaries✅ (YAML)✅ (inlined)
Confidence calibration✅ (Identity/Isotonic/Platt)✅
Score matrix inspection✅✅
In-memory dataPolars, Pandas, list[dict]Array
File providersCSV, Parquet, XLSXCSV, JSON
Schema definition filesYAML + JSONJSON
Database providersSQLite, Postgres, DuckDBSQLite, Postgres, DuckDB
Engine configYAMLJSON
Saved mapping formatYAMLJSON
CLI✅ (Typer)✅ (node:util)
Apply to DataFrame✅❌ (CSV rewrite via CLI)
Edge-runtime compatible❌✅
Zero runtime depsn/a✅
Accuracy benchmark✅ (162 cases, F1 0.84)✅ (parity within 0.0005)

Full feature parity matrix →

Which package should I use?

If you are…Use
Building a Python data pipeline or notebookPython
Building a Next.js app, Node service, or browser toolTypeScript
Running mapping in a serverless edge functionTypeScript (zero Node built-ins)
Doing ad-hoc CSV exploration on the command linePython CLI has more features; TS CLI is leaner
Both — Python backend + Next.js admin UIBoth — outputs are interoperable via the JSON config format

What's new in v0.3

+18.3pp F1 on real-world data from four compounding improvements:

v0.2 baseline    F1 0.657
  • min_conf 0.2 F1 0.765 (+10.8pp — empirically tuned threshold)
  • prefix-strip F1 0.821 (+5.6pp — City vs prospect_City now works)
  • InitialismScorer F1 0.840 (+1.9pp — ASSI, CONSC, RELATIT now work)

New features:

  • Domain dictionaries — MapEngine(domains=["healthcare"]) loads curated aliases for your domain. Ships: generic (default), healthcare, finance, ecommerce. See examples/09_domain_dictionaries.py.
  • Confidence calibration — MapEngine(calibrator=cal) transforms raw scores into calibrated probabilities. Ships: IsotonicCalibrator, PlattCalibrator. Valentine ECE: 0.46 → 0.005. See examples/10_calibration.py.
  • InitialismScorer — matches abbreviation-style column names (assay_id ↔ ASSI). ChEMBL F1: 0.524 → 0.819.
  • Common-prefix canonicalization — automatically strips prospect_, assays_, etc. before fuzzy matching.
  • Valentine corpus — 82 real-world schema-matching cases from the Valentine benchmark for accuracy testing.
  • Full TypeScript parity — all new features ported. 186 TS tests. Benchmark F1 within 0.0005 of Python.

Custom scorers

Python
import infermap

from infermap.types import FieldInfo, ScorerResult

@infermap.scorer("prefix_scorer", weight=0.8) def prefix_scorer(source: FieldInfo, target: FieldInfo) -> ScorerResult | None: if source.name[:3].lower() != target.name[:3].lower(): return None return ScorerResult(score=0.85, reasoning=f"Shared prefix '{source.name[:3]}'")

from infermap.engine import MapEngine from infermap.scorers import default_scorers

engine = MapEngine(scorers=[*default_scorers(), prefix_scorer])

TypeScript
import { MapEngine, defaultScorers, defineScorer, makeScorerResult } from "infermap";

const prefixScorer = defineScorer( "prefix_scorer", (source, target) => { if (source.name.slice(0, 3).toLowerCase() !== target.name.slice(0, 3).toLowerCase()) { return null; } return makeScorerResult(0.85, Shared prefix '${source.name.slice(0, 3)}'); }, 0.8 // weight );

const engine = new MapEngine({ scorers: [...defaultScorers(), prefixScorer], });

CLI examples

The CLI works the same way in both packages:

# Map two files and print a report

infermap map crm_export.csv canonical_customers.csv

Map and save the config (Python: --save, TS: -o)

infermap map crm_export.csv canonical_customers.csv -o mapping.json

Apply a saved mapping to rename columns

infermap apply crm_export.csv --config mapping.json --output renamed.csv

Inspect the schema of a file or DB table

infermap inspect crm_export.csv infermap inspect "sqlite:///mydb.db" --table customers

Validate a saved config against a source

infermap validate crm_export.csv --config mapping.json --required email,id --strict

Config reference

Both packages accept an engine config (scorer weight overrides + alias extensions). Python uses YAML, TypeScript uses JSON; the shape is identical.

# Python: infermap.yaml

domains:

  • healthcare
  • finance

scorers: LLMScorer: enabled: false FuzzyNameScorer:

冒頭だけを表示しています。続きはリポジトリで読めます