Unofficial Python client and stdio MCP server for Eight person search workflows.
Project description
eight-mcp-community
Unofficial Python client and stdio MCP server for Eight person-search workflows.
[!WARNING] This project is unofficial and not affiliated with Eight or Sansan. It uses private/internal web endpoints that can change without notice. Keep cookies, passwords, and raw contact data out of GitHub, logs, issues, prompts, and public reports.
Design
This package follows the same idea as note-mcp-community, but the core is Python:
- PyPI/project name:
eight-mcp-community - Python import package:
eight - CLI commands:
eight-mcp-communityandeight-mcp - MCP server: stdio, suitable for local/private agent use
The core client is reusable without an LLM:
from eight import EightClient
client = EightClient.from_default_config()
result = client.search_person("鈴木太郎 東京商事")
print(result.to_safe_dict())
The MCP server is a thin wrapper over the same EightClient.
Install / run
Local development:
uv sync --dev
uv run eight-mcp-community --help
uv run eight-mcp-community serve
Run directly without installing permanently:
uvx eight-mcp-community serve
MCP client configuration:
{
"mcpServers": {
"eight": {
"command": "uvx",
"args": ["eight-mcp-community", "serve"]
}
}
}
Local development MCP config:
{
"mcpServers": {
"eight": {
"command": "uv",
"args": [
"--directory",
"/path/to/eight-mcp-community",
"run",
"eight-mcp-community",
"serve"
]
}
}
}
Authentication
Supported credential lookup order:
EIGHT_COOKIE— Cookie headerEIGHT_SESSION_COOKIE— alternate Cookie headerEIGHT_MCP_COMMUNITY_CONFIG— path to config JSON with acookiefield- Default config file:
~/.config/eight-mcp-community/config.json EIGHT_COOKIE_FILE— Mozilla/Netscape cookie jar path- Optional env login:
EIGHT_EMAIL+EIGHT_PASSWORD
For remote/server use, prefer a cookie config or env secret. The package does not require browser automation.
Create a config file from a trusted Cookie header:
eight-mcp-community set-cookie 'your 8card.net Cookie header'
eight-mcp-community auth-status
If you do not have a Cookie header, you can ask the CLI to log in and save cookies:
eight-mcp-community set-cookie --email you@example.com --password 'your password'
Eight may require MFA or another browser challenge. In that case, use the browser login flow:
uvx --from 'eight-mcp-community[browser]' eight-mcp-community auth-login
If Playwright's browser binary is missing, install it once on the same machine/user account:
python -m playwright install chromium
Or use env:
EIGHT_COOKIE='your 8card.net Cookie header' eight-mcp-community auth-check
If EIGHT_EMAIL and EIGHT_PASSWORD are set, the client can perform the same password-login flow used by the existing Hermes skill and save resulting cookies into the default config as a Cookie header. MFA/challenge responses are reported as structured errors and are not bypassed.
CLI
eight-mcp-community auth-status
eight-mcp-community auth-check
eight-mcp-community set-cookie 'Cookie header'
eight-mcp-community set-cookie --email you@example.com --password 'your password'
uvx --from 'eight-mcp-community[browser]' eight-mcp-community auth-login
eight-mcp-community clear-cookie
eight-mcp-community search '鈴木'
eight-mcp-community search '鈴木' --always-network
eight-mcp-community serve
All command output is JSON except --help.
MCP tools
Authentication/setup tools:
eight_auth_status— report whether auth is configured and from where, without leaking secretseight_auth_check— verify access to Eight/myhomeand CSRF extractioneight_set_cookie— store a Cookie header in the local config file, or log in withemail/passwordand save cookieseight_auth_login_browser— open a Playwright browser login flow and save cookies locallyeight_clear_cookie— delete the stored config-file cookieeight_login_help— explain supported setup paths
Search tools:
eight_search_person— search registered/exchanged cards first; search public Eight network only if no registered-card hit, unlessalwaysNetworkis trueeight_search_registered_cards— search only registered/exchanged business cardseight_search_network_people— search only public Eight network people, keeping public results separate from private cards
Returned data is intentionally minimal and LLM-safe: source, name, company, department, title, updated date, and confidence/source bucket. Raw HTML, raw JSON, cookies, tokens, email addresses, phone numbers, and bulk exports are not returned.
Privacy and safety
- Do not use this project for bulk contact export or contact-list harvesting.
- Do not commit cookies, config files, raw API dumps, screenshots, or credentials.
- Treat registered business-card results as private context; cite public sources for public-facing reports.
- Eight business-card data can be stale. Corroborate current affiliation/title with public sources when accuracy matters.
Development
uv sync --dev
uv run ruff check .
uv run pytest
Manual MCP smoke test:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"smoke-test","version":"0.0.0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| timeout 5s uv run eight-mcp-community serve
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eight_mcp_community-0.1.1.tar.gz.
File metadata
- Download URL: eight_mcp_community-0.1.1.tar.gz
- Upload date:
- Size: 74.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef058d1192095cbd258e61a73d04573defc3c02be84795209d971f0fdd245de4
|
|
| MD5 |
d3b30220832c7e6cd86f46b2c6d8a6cc
|
|
| BLAKE2b-256 |
d510fc7b3e7f59089cabb6fb987757dc1940aded18fd4da5d90737386bd68029
|
Provenance
The following attestation bundles were made for eight_mcp_community-0.1.1.tar.gz:
Publisher:
publish.yml on new-village/eight-mcp-community
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eight_mcp_community-0.1.1.tar.gz -
Subject digest:
ef058d1192095cbd258e61a73d04573defc3c02be84795209d971f0fdd245de4 - Sigstore transparency entry: 1995411515
- Sigstore integration time:
-
Permalink:
new-village/eight-mcp-community@f8773ff81bcd6523abd4f2d3572f1fdf6ff70150 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/new-village
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f8773ff81bcd6523abd4f2d3572f1fdf6ff70150 -
Trigger Event:
release
-
Statement type:
File details
Details for the file eight_mcp_community-0.1.1-py3-none-any.whl.
File metadata
- Download URL: eight_mcp_community-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d44d0b218976e010342ae347b5ccc95cd6af56942b7d798a7f95799d199d1d1c
|
|
| MD5 |
45298c49c73de32d61897752f32c4682
|
|
| BLAKE2b-256 |
6255f6be8cf90aeb2da6e60cf72712c5cecf1f504fe10aa37cb7a8af821444c7
|
Provenance
The following attestation bundles were made for eight_mcp_community-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on new-village/eight-mcp-community
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eight_mcp_community-0.1.1-py3-none-any.whl -
Subject digest:
d44d0b218976e010342ae347b5ccc95cd6af56942b7d798a7f95799d199d1d1c - Sigstore transparency entry: 1995411664
- Sigstore integration time:
-
Permalink:
new-village/eight-mcp-community@f8773ff81bcd6523abd4f2d3572f1fdf6ff70150 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/new-village
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f8773ff81bcd6523abd4f2d3572f1fdf6ff70150 -
Trigger Event:
release
-
Statement type: