mcpField
S
samecontact

samecontact

ローカル
github.com/GillMacedoビジネス・マーケティング02 週間前に更新

samecontact について

samecontactは、小規模事業者や営業チーム向けに、連絡先CSV内の重複候補を探すMCPサーバー兼ローカルCLIです。メールアドレス、電話番号、氏名、会社を照合し、確度と根拠を示しますが、レコードは統合しません。

主な機能

  1. 01重複および類似する連絡先の検出
  2. 02メールアドレス・電話番号・氏名・会社の照合
  3. 03一致根拠と確度レベルの提示
  4. 04確認用のマーク付きCSVコピーの出力

活用シーン

  1. 01CRMやメーリングリストの重複項目の確認
  2. 02インポート前のユニーク顧客数の把握

MCP 対応

重複グループの検出とCSVの列・行数の検査を行う読み取り専用ツールを提供します。連絡先の氏名をMCPクライアントに返しますが、レコードは統合しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"gillmacedo-samecontact": {
"command": "npx",
"args": [
"-y",
"samecontact"
]
}
}
}
起動コマンドnpx -y samecontact

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsamecontact0.1.0

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pathstringはい連絡先 CSV ファイルのパス
limitnull|integerいいえ返すグループ数と確認対象ペア数の上限。デフォルトは 100。0 の場合は件数のみを返します
columnsobjectいいえ検出に失敗した場合の各フィールド(email、phone、name、first、last、company、city)の列名

詳細

samecontact:CSV ファイル内の重複する顧客と連絡先を見つけます

npm CI MIT license

CRM のエクスポート、顧客リスト、メーリングリストを整理するために、名前、メールアドレス、電話番号の表記が異なっていても、同一人物の行を見つけます。中小企業、営業チーム、マーケティング担当者向けです。

多くの顧客リストには、同一人物が何度も登録されています。「Robert Jones」と「Bob Jones」、あるいは Ana.Silva+news@ と ana.silva@ のような例です。重複は郵送コストを無駄にし、顧客を困らせ、数値を実際より多く見せます。一方、スプレッドシートで単純に重複を削除しても、その大半を見落としてしまいます。samecontact はメールアドレス、電話番号、名前、会社を比較し、判定の確度と理由を示します。重複を自動で統合することはありません。MCP サーバーであり、アカウントも API キーもネットワークアクセスも不要な単一の Go バイナリです。

エージェントに頼めること

  • 「顧客リスト内の重複を見つけてください。」
  • 「実際のユニーク顧客数はいくつですか?」
  • 「この HubSpot または Salesforce のエクスポートを、インポートする前に整理してください。」
  • 「このメーリングリスト内で、同一人物にあたる連絡先はどれですか?」

インストール

MCP サーバーと、Claude に使うタイミングを伝えるスキルを追加する Claude Code プラグインとしてインストールできます。サーバーの実行に npx を使うため、Node が必要です。

claude plugin marketplace add GillMacedo/samecontact
claude plugin install samecontact@samecontact-marketplace

その他の MCP クライアントの場合:

{
  "mcpServers": {
    "samecontact": {
      "command": "npx",
      "args": ["-y", "samecontact", "serve"]
    }
  }
}

npm によるインストールは macOS と Linux に対応しています。Windows では、現時点では go install を使用してください。

または、Go 1.27 以降でバイナリをビルドします。

go install github.com/GillMacedo/samecontact@latest

使い方

examples/ にあるサンプルファイルで試してみてください。ファイル内の人物はすべて架空です。

$ go run . find examples/contacts.csv
SAME PERSON (2)
  rows 3, 4  Ana Silva / Silva, Ana  [same email; same name and company]
  rows 5, 6  Robert Jones / Bob Jones  [same phone and matching name]
LIKELY: check these (1)
  rows 7, 8  Maria Costa  [same name and company]
REVIEW: a person should decide (2)
  rows 11, 12  John Smith / John Smith  [same name, different companies]
  rows 13, 14  Lena Fischer / Omar Haddad  [same email, different names: may be a shared address]
SKIPPED row 16: no name, email or phone
13 contacts, 3 duplicate groups, 3 extra rows, 2 pairs to review

インストール済みのコピーを使う場合は、samecontact find contacts.csv を実行します。--out marked.csv を追加すると、dup_group と dup_level 列を加えたコピーを書き出せるので、スプレッドシートで並べ替えられます。元のファイルが変更されることはありません。機械可読形式の出力には --json を追加します。

判定方法

レベル根拠
同一人物名前が一致する同じメールアドレス、名前が一致する同じ電話番号、または完全に同一の行
可能性が高い同じ名前と会社、同じ名前と勤務先のメールドメイン、または片方の名前が欠けている同じ電話番号
要確認異なる名前で使われているメールアドレスまたは電話番号、名前だけが同じ、または同じ会社にいる類似した名前

ニックネーム、イニシャル、アクセント記号、名前の順序、軽微な誤字、電話番号の形式、Gmail のドットや +tags に対応しています。info@ のようなアドレスや Gmail などのフリーメールドメインは、同一人物である根拠として扱いません。

MCP ツール

ツール機能
contacts_find_duplicatesグループと確認が必要なペアを返します。大きなファイルには上限を設定できます
contacts_inspect_csv行の内容を表示せず、検出した列と行数を示します

どちらも読み取り専用です。contacts_find_duplicates はファイル内の名前を MCP クライアントに返すため、使用する AI モデルにその名前が渡ります。CLI ではすべての処理がご使用のマシン上で行われます。

よくある質問

CSVから重複する連絡先を削除するにはどうすればよいですか? samecontact find contacts.csv --out marked.csv を実行し、グループを確認してから、CRMやスプレッドシートで行を削除または統合してください。このツールは何も削除しません。

HubSpot、Salesforce、Mailchimpのエクスポートデータで使えますか? CSVを読み取り、一般的な列名を認識します。また、--columns email=Mail,name=Who のように列名を指定することもできます。各製品の実際のエクスポートデータでは、まだテストされていません。

顧客データはアップロードされますか? このツールにネットワーク関連のコードはありません。MCP経由の場合、結果はクライアントが使用するAIモデルに送られます。

制限事項

  • 重複の候補を見つけるツールです。統合する前に、担当者が確認してください。
  • 名前の照合は西洋式の名前と一般的な愛称を対象としているため、ほかの命名体系では一部の表記違いを見逃すことがあります。
  • 電話番号は末尾10桁で比較するため、異なる国の2つの番号が一致することがあります。
  • 読み取れるのはCSVのみで、ファイルサイズの上限は50 MBです。
  • これまでテストに使用したのは架空のデータであり、実際のエクスポートデータではありません。お使いのデータで問題が発生した場合は、データではなく列ヘッダーを添えてissueを作成してください。

コントリビューション

個人の方も、AIエージェントと協働する方も、コントリビューションを歓迎します。CONTRIBUTING.mdをご覧ください。最初に取り組むのに適したissueは次のとおりです。

  • さらに多くのCRMや言語の列名を追加する
  • 英語以外のものを含む、さらに多くの愛称を追加する
  • XLSXリーダーを追加する
  • グループごとに1行にまとめた統合案を提示するmergeコマンドを追加する
  • プラグインアイコンを追加する
プルリクエストの流れ
  1. PRを作成します。 リポジトリをフォークし、ブランチで作業して、変更を1つに絞ってください。ユーザーにとって何が変わるかを示すタイトルを付けてください。これは変更履歴の行として使われます。feat:はAddedに、fix:はFixedに分類されます。
  2. 自動チェック。 コードの変更にはテストが必要で、make testが成功しなければなりません。30行を超える変更には、リンクされたオープンissue(Closes #<number>)が必要です。また、PRの変更行数は最大800行です。不足がある場合は、修正が必要な箇所をコメントでお知らせします。
  3. レビュー。 Claudeが各PRを自動的にレビューします。コードのPRにはセキュリティレビューも行われ、サンドボックスでテストされます。その後、レビュー担当がPRをマージするか、変更を依頼します。CI、エージェントの設定、npmまたはPythonの依存関係、ベンダーコード、ビルドファイルを変更するPRは、この方法ではマージできません。その旨をコメントでお知らせします。セキュリティレビューで承認されなかった変更も同様です。
  4. リリース。 ユーザーがインストールする内容に影響する変更がマージされると、約2時間以内に新しいバージョンがリリースされ、GitHub Releaseも公開されます。プロジェクトにnpmパッケージがある場合は、そちらもリリースされます。ドキュメントとCIの変更は次回のリリースまで保留されます。

AIに関する開示

このプロジェクトは主にClaude Codeで生成され、メンテナーによるレビューを受けています。

私について

私はGiulliano Macedoです。GoTech Solutionsで開発者向けツールを開発しています。近況の確認や連絡はこちらからどうぞ。

samecontactでリストを整理できたら、スターを付けていただけると、ほかの方にも見つけてもらいやすくなります。


MITライセンスです。

Giulliano Macedo、GoTech Solutionsが開発 · LinkedIn · X

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。