flashid-auto 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. flashid_auto-0.2.2/PKG-INFO +97 -0
  2. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/examples/linkedin-mcp-server.template.json +3 -3
  3. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/linkedin-mcp.md +5 -5
  4. flashid_auto-0.2.2/docs/package-readme.md +72 -0
  5. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/pyproject.toml +2 -2
  6. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/mcp/tools.py +7 -3
  7. flashid_auto-0.2.2/src/flashid_auto.egg-info/PKG-INFO +97 -0
  8. flashid_auto-0.2.0/PKG-INFO +0 -130
  9. flashid_auto-0.2.0/docs/package-readme.md +0 -105
  10. flashid_auto-0.2.0/src/flashid_auto.egg-info/PKG-INFO +0 -130
  11. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/.env.example +0 -0
  12. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/LICENSE +0 -0
  13. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/MANIFEST.in +0 -0
  14. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/examples/linkedin-mcp-client.json +0 -0
  15. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/flashid-api-reference.md +0 -0
  16. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/linkedin-mcp-release.md +0 -0
  17. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/linkedin-people-search.md +0 -0
  18. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/docs/linkedin-sales-navigator.md +0 -0
  19. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/requirements-dev.lock +0 -0
  20. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/requirements-mcp.lock +0 -0
  21. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/setup.cfg +0 -0
  22. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/__init__.py +0 -0
  23. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/__init__.py +0 -0
  24. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/base.py +0 -0
  25. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/contracts.py +0 -0
  26. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/environment.py +0 -0
  27. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/plan.py +0 -0
  28. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/registry.py +0 -0
  29. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/runner.py +0 -0
  30. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/automation/worker.py +0 -0
  31. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/cli.py +0 -0
  32. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/flashid/__init__.py +0 -0
  33. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/flashid/__main__.py +0 -0
  34. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/flashid/client.py +0 -0
  35. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/flashid/config.py +0 -0
  36. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/flashid/errors.py +0 -0
  37. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/mcp/__init__.py +0 -0
  38. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/mcp/__main__.py +0 -0
  39. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/mcp/server.py +0 -0
  40. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/mcp/service.py +0 -0
  41. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/modules/__init__.py +0 -0
  42. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/modules/_linkedin.py +0 -0
  43. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/modules/duckduckgo.py +0 -0
  44. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/modules/linkedin_people_search.py +0 -0
  45. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/modules/linkedin_sales_navigator.py +0 -0
  46. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto/tocsv.py +0 -0
  47. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto.egg-info/SOURCES.txt +0 -0
  48. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto.egg-info/dependency_links.txt +0 -0
  49. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto.egg-info/entry_points.txt +0 -0
  50. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto.egg-info/requires.txt +0 -0
  51. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/src/flashid_auto.egg-info/top_level.txt +0 -0
  52. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_automation.py +0 -0
  53. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_automation_worker.py +0 -0
  54. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_duckduckgo_browser.py +0 -0
  55. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_flashid_client.py +0 -0
  56. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_flashid_config_cli.py +0 -0
  57. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_linkedin_mcp.py +0 -0
  58. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_linkedin_people_search.py +0 -0
  59. {flashid_auto-0.2.0 → flashid_auto-0.2.2}/tests/test_linkedin_sales_navigator.py +0 -0
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.4
2
+ Name: flashid-auto
3
+ Version: 0.2.2
4
+ Summary: Modular automation for running FlashID browsers
5
+ License-Expression: MIT
6
+ Keywords: flashid,browser,automation,playwright
7
+ Requires-Python: >=3.10
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: requests<3,>=2.32.3
11
+ Requires-Dist: python-dotenv<2,>=1.0.1
12
+ Requires-Dist: playwright<2,>=1.51
13
+ Requires-Dist: jsonschema<5,>=4.23
14
+ Provides-Extra: dev
15
+ Requires-Dist: pytest<9,>=8.3; extra == "dev"
16
+ Requires-Dist: requests-mock<2,>=1.12; extra == "dev"
17
+ Requires-Dist: ruff<1,>=0.11; extra == "dev"
18
+ Provides-Extra: mcp
19
+ Requires-Dist: mcp<3,>=2.3; extra == "mcp"
20
+ Requires-Dist: filelock<4,>=3.18; extra == "mcp"
21
+ Provides-Extra: release
22
+ Requires-Dist: build<2,>=1.2; extra == "release"
23
+ Requires-Dist: twine<8,>=6; extra == "release"
24
+ Dynamic: license-file
25
+
26
+ # FlashID Auto
27
+
28
+ A Python automation tool for FlashID browsers. Connect to an existing, running
29
+ FlashID browser environment, execute modular browser tasks, and receive
30
+ structured JSON results.
31
+
32
+ ## Features
33
+
34
+ - Connect to FlashID through its Local API and an existing browser's CDP endpoint.
35
+ - Run browser automation modules using Playwright.
36
+ - Execute individual modules or chain multiple steps with JSON data bindings.
37
+ - Return structured results, execution status, and error details.
38
+ - Clean up task-created tabs during normal completion while preserving existing tabs.
39
+ - Extend automation with custom Python modules.
40
+
41
+ ## Requirements
42
+
43
+ - Python 3.10 or later.
44
+ - FlashID with Local API enabled.
45
+ - A running FlashID browser environment for browser tasks.
46
+
47
+ Playwright connects to FlashID's existing browser, so no separate Chromium
48
+ download is required for these tasks.
49
+
50
+ ## Installation
51
+
52
+ ```bash
53
+ python -m pip install flashid-auto
54
+ ```
55
+
56
+ ## Configuration
57
+
58
+ Set the following environment variables, or create a `.env` file in your working
59
+ directory:
60
+
61
+ ```dotenv
62
+ FLASHID_API_BASE_URL=http://127.0.0.1:58931
63
+ FLASHID_API_KEY=YOUR_FLASHID_API_KEY
64
+ ```
65
+
66
+ Use your own FlashID API key and keep the `.env` file private. Existing process
67
+ environment variables take precedence over values in the file.
68
+
69
+ ## Usage
70
+
71
+ Check the FlashID Local API connection:
72
+
73
+ ```bash
74
+ flashid health
75
+ ```
76
+
77
+ Run a browser automation task in the running environment named `Navigator`:
78
+
79
+ ```bash
80
+ flashid-auto --profile Navigator --module duckduckgo -- \
81
+ --search-key "FlashID browser automation" --result-count 3
82
+ ```
83
+
84
+ Use the exact name of your running FlashID environment for `--profile`.
85
+ Commands return JSON that can be consumed by scripts and other automation tools.
86
+
87
+ For multi-step tasks, supply a JSON execution plan:
88
+
89
+ ```bash
90
+ flashid-auto --profile Navigator --chain-file tasks.json
91
+ ```
92
+
93
+ See `flashid-auto --help` and `flashid --help` for command-line options.
94
+
95
+ ## License
96
+
97
+ MIT. This project is independent of FlashID.
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.replace-owner/linkedin-mcp",
4
4
  "title": "LinkedIn MCP for FlashID",
5
5
  "description": "Search LinkedIn Sales Navigator companies and employees in your own FlashID browser.",
6
- "version": "0.2.0",
6
+ "version": "0.2.2",
7
7
  "repository": {
8
8
  "url": "https://github.com/replace-owner/replace-repository",
9
9
  "source": "github"
@@ -13,10 +13,10 @@
13
13
  "registryType": "pypi",
14
14
  "registryBaseUrl": "https://pypi.org",
15
15
  "identifier": "flashid-auto",
16
- "version": "0.2.0",
16
+ "version": "0.2.2",
17
17
  "runtimeHint": "uvx",
18
18
  "runtimeArguments": [
19
- {"type":"named","name":"--with","value":"flashid-auto[mcp]==0.2.0"}
19
+ {"type":"named","name":"--with","value":"flashid-auto[mcp]==0.2.2"}
20
20
  ],
21
21
  "packageArguments": [{"type":"positional","value":"mcp"}],
22
22
  "transport": {"type":"stdio"},
@@ -1,6 +1,6 @@
1
1
  # LinkedIn MCP 使用与接口契约
2
2
 
3
- 日期:2026-10-20。发行版本:flashid-auto 0.2.0。服务名和启动命令:`linkedin-mcp`。
3
+ 日期:2026-10-23。发行版本:flashid-auto 0.2.2。服务名和启动命令:`linkedin-mcp`。
4
4
  公司模块复用 `linkedin_sales_navigator` 1.2.0,人员模块复用 `linkedin_people_search` 2.3.0。
5
5
 
6
6
  ## 1. 目标与安装
@@ -46,7 +46,7 @@ Windows 使用 `.venv\Scripts\python.exe` 和 `.venv\Scripts\linkedin-mcp.exe`
46
46
  目前发行包仍为本地构建,尚未公开上传。**
47
47
 
48
48
  ```bash
49
- codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from 'flashid-auto[mcp]==0.2.0' linkedin-mcp --profile Navigator
49
+ codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from 'flashid-auto[mcp]==0.2.2' linkedin-mcp --profile Navigator
50
50
  ```
51
51
 
52
52
  将 `YOUR_FLASHID_API_KEY` 替换为用户自己的 Key。`codex mcp add` 保存 MCP 启动配置;
@@ -62,7 +62,7 @@ Codex 首次连接时,`uvx` 自动下载依赖、缓存独立环境并启动
62
62
  发布前可以直接用本地 wheel 验证:
63
63
 
64
64
  ```bash
65
- codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from '/absolute/path/to/flashid_auto-0.2.0-py3-none-any.whl[mcp]' linkedin-mcp --profile Navigator
65
+ codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from '/absolute/path/to/flashid_auto-0.2.2-py3-none-any.whl[mcp]' linkedin-mcp --profile Navigator
66
66
  ```
67
67
 
68
68
  命令中的 wheel 路径须替换为本机实际绝对路径。该方式不依赖 PyPI 上尚未发布的本项目。
@@ -100,9 +100,9 @@ MCP 人员搜索要求 `company_name`、`company_id` 同时提供,同时不接
100
100
 
101
101
  ## 3. 自然语言调用流程
102
102
 
103
- 1. 调用 `check_environment`。若未运行、未登录或遇到人工验证,提示用户恢复环境。
103
+ 1. 不把 `check_environment` 作为例行前置步骤;仅在用户明确要求检查环境,或搜索出现环境/登录故障时调用。
104
104
  2. 从用户请求提取关键词和条件,不添加用户未指定的 Persona、活跃度或业务画像。
105
- 3. 对动态地区、行业、职位、列表等先 inspect;使用页面候选原文。
105
+ 3. 对请求中无法从已有结果核实的动态地区、行业、职位、列表等调用 inspect;使用页面候选原文,不为例行探测调用 inspect。
106
106
  4. 区分公司总部与员工所在地;人数档位无法精确表达、币种不明时先澄清。
107
107
  5. 按已核实条件搜索;“最多 N 条”使用 `require_result_count=false`,“需要 N 条”保留 true。
108
108
  6. 公司→人员场景按公司顺序调用 `search_people`,携带名称和 ID,保留来源公司关联。
@@ -0,0 +1,72 @@
1
+ # FlashID Auto
2
+
3
+ A Python automation tool for FlashID browsers. Connect to an existing, running
4
+ FlashID browser environment, execute modular browser tasks, and receive
5
+ structured JSON results.
6
+
7
+ ## Features
8
+
9
+ - Connect to FlashID through its Local API and an existing browser's CDP endpoint.
10
+ - Run browser automation modules using Playwright.
11
+ - Execute individual modules or chain multiple steps with JSON data bindings.
12
+ - Return structured results, execution status, and error details.
13
+ - Clean up task-created tabs during normal completion while preserving existing tabs.
14
+ - Extend automation with custom Python modules.
15
+
16
+ ## Requirements
17
+
18
+ - Python 3.10 or later.
19
+ - FlashID with Local API enabled.
20
+ - A running FlashID browser environment for browser tasks.
21
+
22
+ Playwright connects to FlashID's existing browser, so no separate Chromium
23
+ download is required for these tasks.
24
+
25
+ ## Installation
26
+
27
+ ```bash
28
+ python -m pip install flashid-auto
29
+ ```
30
+
31
+ ## Configuration
32
+
33
+ Set the following environment variables, or create a `.env` file in your working
34
+ directory:
35
+
36
+ ```dotenv
37
+ FLASHID_API_BASE_URL=http://127.0.0.1:58931
38
+ FLASHID_API_KEY=YOUR_FLASHID_API_KEY
39
+ ```
40
+
41
+ Use your own FlashID API key and keep the `.env` file private. Existing process
42
+ environment variables take precedence over values in the file.
43
+
44
+ ## Usage
45
+
46
+ Check the FlashID Local API connection:
47
+
48
+ ```bash
49
+ flashid health
50
+ ```
51
+
52
+ Run a browser automation task in the running environment named `Navigator`:
53
+
54
+ ```bash
55
+ flashid-auto --profile Navigator --module duckduckgo -- \
56
+ --search-key "FlashID browser automation" --result-count 3
57
+ ```
58
+
59
+ Use the exact name of your running FlashID environment for `--profile`.
60
+ Commands return JSON that can be consumed by scripts and other automation tools.
61
+
62
+ For multi-step tasks, supply a JSON execution plan:
63
+
64
+ ```bash
65
+ flashid-auto --profile Navigator --chain-file tasks.json
66
+ ```
67
+
68
+ See `flashid-auto --help` and `flashid --help` for command-line options.
69
+
70
+ ## License
71
+
72
+ MIT. This project is independent of FlashID.
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "flashid-auto"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "Modular automation for running FlashID browsers"
9
9
  readme = "docs/package-readme.md"
10
10
  license = "MIT"
11
11
  license-files = ["LICENSE"]
12
- keywords = ["mcp", "linkedin", "sales-navigator", "flashid", "automation"]
12
+ keywords = ["flashid", "browser", "automation", "playwright"]
13
13
  requires-python = ">=3.10"
14
14
  dependencies = [
15
15
  "requests>=2.32.3,<3",
@@ -9,9 +9,13 @@ from flashid_auto.modules.linkedin_people_search import LinkedInPeopleSearchModu
9
9
  from flashid_auto.modules.linkedin_sales_navigator import LinkedInSalesNavigatorModule
10
10
 
11
11
  INSTRUCTIONS = """Search LinkedIn Sales Navigator in the user's existing FlashID browser.
12
- Interpret the user's natural language and call the structured tools. Start with
13
- check_environment. Discover dynamic filter values with inspect tools; never invent
14
- LinkedIn option names or IDs. Company headquarters and employee geography differ.
12
+ Interpret the user's natural language and call the structured tools. Do not call
13
+ check_environment as a routine preflight or health check; use it only when the user
14
+ explicitly asks for an environment/access check or when diagnosing an environment
15
+ failure. Keep inspect_company_filters available, but do not call it as a routine
16
+ preflight. Use an inspect tool only when the requested dynamic filter value or ID
17
+ cannot be verified from the request or prior tool output; never invent LinkedIn option
18
+ names or IDs. Company headquarters and employee geography differ.
15
19
  Do not add unspecified business conditions. Clarify ambiguous companies, currencies,
16
20
  and ranges that cannot be represented exactly. For a company-specific people search,
17
21
  obtain company_name and company_id from search_companies or from
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.4
2
+ Name: flashid-auto
3
+ Version: 0.2.2
4
+ Summary: Modular automation for running FlashID browsers
5
+ License-Expression: MIT
6
+ Keywords: flashid,browser,automation,playwright
7
+ Requires-Python: >=3.10
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: requests<3,>=2.32.3
11
+ Requires-Dist: python-dotenv<2,>=1.0.1
12
+ Requires-Dist: playwright<2,>=1.51
13
+ Requires-Dist: jsonschema<5,>=4.23
14
+ Provides-Extra: dev
15
+ Requires-Dist: pytest<9,>=8.3; extra == "dev"
16
+ Requires-Dist: requests-mock<2,>=1.12; extra == "dev"
17
+ Requires-Dist: ruff<1,>=0.11; extra == "dev"
18
+ Provides-Extra: mcp
19
+ Requires-Dist: mcp<3,>=2.3; extra == "mcp"
20
+ Requires-Dist: filelock<4,>=3.18; extra == "mcp"
21
+ Provides-Extra: release
22
+ Requires-Dist: build<2,>=1.2; extra == "release"
23
+ Requires-Dist: twine<8,>=6; extra == "release"
24
+ Dynamic: license-file
25
+
26
+ # FlashID Auto
27
+
28
+ A Python automation tool for FlashID browsers. Connect to an existing, running
29
+ FlashID browser environment, execute modular browser tasks, and receive
30
+ structured JSON results.
31
+
32
+ ## Features
33
+
34
+ - Connect to FlashID through its Local API and an existing browser's CDP endpoint.
35
+ - Run browser automation modules using Playwright.
36
+ - Execute individual modules or chain multiple steps with JSON data bindings.
37
+ - Return structured results, execution status, and error details.
38
+ - Clean up task-created tabs during normal completion while preserving existing tabs.
39
+ - Extend automation with custom Python modules.
40
+
41
+ ## Requirements
42
+
43
+ - Python 3.10 or later.
44
+ - FlashID with Local API enabled.
45
+ - A running FlashID browser environment for browser tasks.
46
+
47
+ Playwright connects to FlashID's existing browser, so no separate Chromium
48
+ download is required for these tasks.
49
+
50
+ ## Installation
51
+
52
+ ```bash
53
+ python -m pip install flashid-auto
54
+ ```
55
+
56
+ ## Configuration
57
+
58
+ Set the following environment variables, or create a `.env` file in your working
59
+ directory:
60
+
61
+ ```dotenv
62
+ FLASHID_API_BASE_URL=http://127.0.0.1:58931
63
+ FLASHID_API_KEY=YOUR_FLASHID_API_KEY
64
+ ```
65
+
66
+ Use your own FlashID API key and keep the `.env` file private. Existing process
67
+ environment variables take precedence over values in the file.
68
+
69
+ ## Usage
70
+
71
+ Check the FlashID Local API connection:
72
+
73
+ ```bash
74
+ flashid health
75
+ ```
76
+
77
+ Run a browser automation task in the running environment named `Navigator`:
78
+
79
+ ```bash
80
+ flashid-auto --profile Navigator --module duckduckgo -- \
81
+ --search-key "FlashID browser automation" --result-count 3
82
+ ```
83
+
84
+ Use the exact name of your running FlashID environment for `--profile`.
85
+ Commands return JSON that can be consumed by scripts and other automation tools.
86
+
87
+ For multi-step tasks, supply a JSON execution plan:
88
+
89
+ ```bash
90
+ flashid-auto --profile Navigator --chain-file tasks.json
91
+ ```
92
+
93
+ See `flashid-auto --help` and `flashid --help` for command-line options.
94
+
95
+ ## License
96
+
97
+ MIT. This project is independent of FlashID.
@@ -1,130 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: flashid-auto
3
- Version: 0.2.0
4
- Summary: Modular automation for running FlashID browsers
5
- License-Expression: MIT
6
- Keywords: mcp,linkedin,sales-navigator,flashid,automation
7
- Requires-Python: >=3.10
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Requires-Dist: requests<3,>=2.32.3
11
- Requires-Dist: python-dotenv<2,>=1.0.1
12
- Requires-Dist: playwright<2,>=1.51
13
- Requires-Dist: jsonschema<5,>=4.23
14
- Provides-Extra: dev
15
- Requires-Dist: pytest<9,>=8.3; extra == "dev"
16
- Requires-Dist: requests-mock<2,>=1.12; extra == "dev"
17
- Requires-Dist: ruff<1,>=0.11; extra == "dev"
18
- Provides-Extra: mcp
19
- Requires-Dist: mcp<3,>=2.3; extra == "mcp"
20
- Requires-Dist: filelock<4,>=3.18; extra == "mcp"
21
- Provides-Extra: release
22
- Requires-Dist: build<2,>=1.2; extra == "release"
23
- Requires-Dist: twine<8,>=6; extra == "release"
24
- Dynamic: license-file
25
-
26
- # LinkedIn MCP for FlashID
27
-
28
- Search LinkedIn Sales Navigator companies and employees from a natural-language
29
- request in any MCP-compatible agent. The agent interprets your request and calls
30
- five structured tools in your existing FlashID browser.
31
-
32
- The MCP server and executable are named **linkedin-mcp**. The Python distribution
33
- is **flashid-auto**; the unrelated `linkedin-mcp` package on PyPI is not this project.
34
-
35
- ## Install from source
36
-
37
- Requires Python 3.10+, FlashID with Local API enabled, and a running browser
38
- environment signed in to LinkedIn Sales Navigator (English interface).
39
-
40
- ```bash
41
- python -m venv .venv
42
- .venv/bin/python -m pip install '.[mcp]'
43
- ```
44
-
45
- On Windows, use `.venv\Scripts\python.exe` and `.venv\Scripts\linkedin-mcp.exe`.
46
- Playwright connects to FlashID's existing browser; no separate Chromium download
47
- is needed for actual searches.
48
-
49
- Copy `.env.example` to `.env` and fill in your FlashID API address and key.
50
- Keep your real `.env` private. Configuration can also be supplied as process
51
- environment variables. The MCP server does not require a separate LLM API key.
52
-
53
- ## Connect an agent
54
-
55
- ### Codex: one-command setup after PyPI publication
56
-
57
- With Codex CLI and uv (`uvx`) already installed, register the server:
58
-
59
- ```bash
60
- codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from 'flashid-auto[mcp]==0.2.0' linkedin-mcp --profile Navigator
61
- ```
62
-
63
- Replace the placeholder with your own FlashID API key. Codex saves the launch
64
- configuration; `uvx` installs and caches the package when Codex first connects.
65
- The default FlashID API address is `http://127.0.0.1:58931`. If needed, add
66
- `--env FLASHID_API_BASE_URL=http://your-host:port` before `--`.
67
- FlashID and the named browser environment must already be running and signed in.
68
- No source checkout, manual virtual environment, or JSON editing is needed.
69
-
70
- This command downloads version 0.2.0 from PyPI. For an unpublished build, use the
71
- source installation instructions above. Check configured servers with
72
- `codex mcp list`, then use `/mcp` inside Codex to inspect the connection.
73
-
74
- See the [official Codex MCP documentation](https://developers.openai.com/codex/mcp/).
75
-
76
- ### Other MCP clients or installation from source
77
-
78
- Use absolute paths in your MCP client's configuration:
79
-
80
- ```json
81
- {
82
- "mcpServers": {
83
- "linkedin-mcp": {
84
- "command": "/absolute/path/to/project/.venv/bin/linkedin-mcp",
85
- "args": [
86
- "--env-file", "/absolute/path/to/project/.env",
87
- "--profile", "Navigator"
88
- ]
89
- }
90
- }
91
- }
92
- ```
93
-
94
- Start FlashID and the named browser environment, sign in to Sales Navigator,
95
- then connect your agent. Each user supplies their own FlashID environment and
96
- LinkedIn session. The package shares the tools, not an account or browser session.
97
-
98
- Example requests:
99
-
100
- - “Find up to 10 companies headquartered in the United States related to substations.”
101
- - “Find procurement managers at this company.”
102
- - “Find five matching companies, then up to three purchasing contacts at each.”
103
-
104
- The agent can use `check_environment`, `inspect_company_filters`,
105
- `search_companies`, `inspect_people_filters`, and `search_people`.
106
- For a company-specific people search, it must supply both the verified company
107
- name and ID; discovery returns company IDs where the page exposes them.
108
-
109
- The server reads visible pages, creates temporary tabs, and cleans up its tabs.
110
- It preserves existing user tabs. It returns actual filters, counts and completion
111
- status, including valid partial results on failure. It stops for login or manual
112
- verification challenges. It does not save accounts, send messages, or write CRM data.
113
-
114
- The default module timeout is 300 seconds and the default per-page operation
115
- timeout is 15 seconds. Search calls sharing an environment run sequentially;
116
- overlapping MCP calls return `ENV_BUSY`.
117
-
118
- ## Install a published release
119
-
120
- The distribution name is `flashid-auto`. Do not install the unrelated
121
- `linkedin-mcp` distribution as a substitute. To install version 0.2.0 from PyPI:
122
-
123
- ```bash
124
- python -m pip install 'flashid-auto[mcp]==0.2.0'
125
- ```
126
-
127
- The source tree contains the full Chinese integration guide at
128
- `docs/linkedin-mcp.md` and the release procedure at `docs/linkedin-mcp-release.md`.
129
-
130
- License: MIT. This project is independent of LinkedIn and FlashID.
@@ -1,105 +0,0 @@
1
- # LinkedIn MCP for FlashID
2
-
3
- Search LinkedIn Sales Navigator companies and employees from a natural-language
4
- request in any MCP-compatible agent. The agent interprets your request and calls
5
- five structured tools in your existing FlashID browser.
6
-
7
- The MCP server and executable are named **linkedin-mcp**. The Python distribution
8
- is **flashid-auto**; the unrelated `linkedin-mcp` package on PyPI is not this project.
9
-
10
- ## Install from source
11
-
12
- Requires Python 3.10+, FlashID with Local API enabled, and a running browser
13
- environment signed in to LinkedIn Sales Navigator (English interface).
14
-
15
- ```bash
16
- python -m venv .venv
17
- .venv/bin/python -m pip install '.[mcp]'
18
- ```
19
-
20
- On Windows, use `.venv\Scripts\python.exe` and `.venv\Scripts\linkedin-mcp.exe`.
21
- Playwright connects to FlashID's existing browser; no separate Chromium download
22
- is needed for actual searches.
23
-
24
- Copy `.env.example` to `.env` and fill in your FlashID API address and key.
25
- Keep your real `.env` private. Configuration can also be supplied as process
26
- environment variables. The MCP server does not require a separate LLM API key.
27
-
28
- ## Connect an agent
29
-
30
- ### Codex: one-command setup after PyPI publication
31
-
32
- With Codex CLI and uv (`uvx`) already installed, register the server:
33
-
34
- ```bash
35
- codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from 'flashid-auto[mcp]==0.2.0' linkedin-mcp --profile Navigator
36
- ```
37
-
38
- Replace the placeholder with your own FlashID API key. Codex saves the launch
39
- configuration; `uvx` installs and caches the package when Codex first connects.
40
- The default FlashID API address is `http://127.0.0.1:58931`. If needed, add
41
- `--env FLASHID_API_BASE_URL=http://your-host:port` before `--`.
42
- FlashID and the named browser environment must already be running and signed in.
43
- No source checkout, manual virtual environment, or JSON editing is needed.
44
-
45
- This command downloads version 0.2.0 from PyPI. For an unpublished build, use the
46
- source installation instructions above. Check configured servers with
47
- `codex mcp list`, then use `/mcp` inside Codex to inspect the connection.
48
-
49
- See the [official Codex MCP documentation](https://developers.openai.com/codex/mcp/).
50
-
51
- ### Other MCP clients or installation from source
52
-
53
- Use absolute paths in your MCP client's configuration:
54
-
55
- ```json
56
- {
57
- "mcpServers": {
58
- "linkedin-mcp": {
59
- "command": "/absolute/path/to/project/.venv/bin/linkedin-mcp",
60
- "args": [
61
- "--env-file", "/absolute/path/to/project/.env",
62
- "--profile", "Navigator"
63
- ]
64
- }
65
- }
66
- }
67
- ```
68
-
69
- Start FlashID and the named browser environment, sign in to Sales Navigator,
70
- then connect your agent. Each user supplies their own FlashID environment and
71
- LinkedIn session. The package shares the tools, not an account or browser session.
72
-
73
- Example requests:
74
-
75
- - “Find up to 10 companies headquartered in the United States related to substations.”
76
- - “Find procurement managers at this company.”
77
- - “Find five matching companies, then up to three purchasing contacts at each.”
78
-
79
- The agent can use `check_environment`, `inspect_company_filters`,
80
- `search_companies`, `inspect_people_filters`, and `search_people`.
81
- For a company-specific people search, it must supply both the verified company
82
- name and ID; discovery returns company IDs where the page exposes them.
83
-
84
- The server reads visible pages, creates temporary tabs, and cleans up its tabs.
85
- It preserves existing user tabs. It returns actual filters, counts and completion
86
- status, including valid partial results on failure. It stops for login or manual
87
- verification challenges. It does not save accounts, send messages, or write CRM data.
88
-
89
- The default module timeout is 300 seconds and the default per-page operation
90
- timeout is 15 seconds. Search calls sharing an environment run sequentially;
91
- overlapping MCP calls return `ENV_BUSY`.
92
-
93
- ## Install a published release
94
-
95
- The distribution name is `flashid-auto`. Do not install the unrelated
96
- `linkedin-mcp` distribution as a substitute. To install version 0.2.0 from PyPI:
97
-
98
- ```bash
99
- python -m pip install 'flashid-auto[mcp]==0.2.0'
100
- ```
101
-
102
- The source tree contains the full Chinese integration guide at
103
- `docs/linkedin-mcp.md` and the release procedure at `docs/linkedin-mcp-release.md`.
104
-
105
- License: MIT. This project is independent of LinkedIn and FlashID.
@@ -1,130 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: flashid-auto
3
- Version: 0.2.0
4
- Summary: Modular automation for running FlashID browsers
5
- License-Expression: MIT
6
- Keywords: mcp,linkedin,sales-navigator,flashid,automation
7
- Requires-Python: >=3.10
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Requires-Dist: requests<3,>=2.32.3
11
- Requires-Dist: python-dotenv<2,>=1.0.1
12
- Requires-Dist: playwright<2,>=1.51
13
- Requires-Dist: jsonschema<5,>=4.23
14
- Provides-Extra: dev
15
- Requires-Dist: pytest<9,>=8.3; extra == "dev"
16
- Requires-Dist: requests-mock<2,>=1.12; extra == "dev"
17
- Requires-Dist: ruff<1,>=0.11; extra == "dev"
18
- Provides-Extra: mcp
19
- Requires-Dist: mcp<3,>=2.3; extra == "mcp"
20
- Requires-Dist: filelock<4,>=3.18; extra == "mcp"
21
- Provides-Extra: release
22
- Requires-Dist: build<2,>=1.2; extra == "release"
23
- Requires-Dist: twine<8,>=6; extra == "release"
24
- Dynamic: license-file
25
-
26
- # LinkedIn MCP for FlashID
27
-
28
- Search LinkedIn Sales Navigator companies and employees from a natural-language
29
- request in any MCP-compatible agent. The agent interprets your request and calls
30
- five structured tools in your existing FlashID browser.
31
-
32
- The MCP server and executable are named **linkedin-mcp**. The Python distribution
33
- is **flashid-auto**; the unrelated `linkedin-mcp` package on PyPI is not this project.
34
-
35
- ## Install from source
36
-
37
- Requires Python 3.10+, FlashID with Local API enabled, and a running browser
38
- environment signed in to LinkedIn Sales Navigator (English interface).
39
-
40
- ```bash
41
- python -m venv .venv
42
- .venv/bin/python -m pip install '.[mcp]'
43
- ```
44
-
45
- On Windows, use `.venv\Scripts\python.exe` and `.venv\Scripts\linkedin-mcp.exe`.
46
- Playwright connects to FlashID's existing browser; no separate Chromium download
47
- is needed for actual searches.
48
-
49
- Copy `.env.example` to `.env` and fill in your FlashID API address and key.
50
- Keep your real `.env` private. Configuration can also be supplied as process
51
- environment variables. The MCP server does not require a separate LLM API key.
52
-
53
- ## Connect an agent
54
-
55
- ### Codex: one-command setup after PyPI publication
56
-
57
- With Codex CLI and uv (`uvx`) already installed, register the server:
58
-
59
- ```bash
60
- codex mcp add linkedin-mcp --env FLASHID_API_KEY=YOUR_FLASHID_API_KEY -- uvx --from 'flashid-auto[mcp]==0.2.0' linkedin-mcp --profile Navigator
61
- ```
62
-
63
- Replace the placeholder with your own FlashID API key. Codex saves the launch
64
- configuration; `uvx` installs and caches the package when Codex first connects.
65
- The default FlashID API address is `http://127.0.0.1:58931`. If needed, add
66
- `--env FLASHID_API_BASE_URL=http://your-host:port` before `--`.
67
- FlashID and the named browser environment must already be running and signed in.
68
- No source checkout, manual virtual environment, or JSON editing is needed.
69
-
70
- This command downloads version 0.2.0 from PyPI. For an unpublished build, use the
71
- source installation instructions above. Check configured servers with
72
- `codex mcp list`, then use `/mcp` inside Codex to inspect the connection.
73
-
74
- See the [official Codex MCP documentation](https://developers.openai.com/codex/mcp/).
75
-
76
- ### Other MCP clients or installation from source
77
-
78
- Use absolute paths in your MCP client's configuration:
79
-
80
- ```json
81
- {
82
- "mcpServers": {
83
- "linkedin-mcp": {
84
- "command": "/absolute/path/to/project/.venv/bin/linkedin-mcp",
85
- "args": [
86
- "--env-file", "/absolute/path/to/project/.env",
87
- "--profile", "Navigator"
88
- ]
89
- }
90
- }
91
- }
92
- ```
93
-
94
- Start FlashID and the named browser environment, sign in to Sales Navigator,
95
- then connect your agent. Each user supplies their own FlashID environment and
96
- LinkedIn session. The package shares the tools, not an account or browser session.
97
-
98
- Example requests:
99
-
100
- - “Find up to 10 companies headquartered in the United States related to substations.”
101
- - “Find procurement managers at this company.”
102
- - “Find five matching companies, then up to three purchasing contacts at each.”
103
-
104
- The agent can use `check_environment`, `inspect_company_filters`,
105
- `search_companies`, `inspect_people_filters`, and `search_people`.
106
- For a company-specific people search, it must supply both the verified company
107
- name and ID; discovery returns company IDs where the page exposes them.
108
-
109
- The server reads visible pages, creates temporary tabs, and cleans up its tabs.
110
- It preserves existing user tabs. It returns actual filters, counts and completion
111
- status, including valid partial results on failure. It stops for login or manual
112
- verification challenges. It does not save accounts, send messages, or write CRM data.
113
-
114
- The default module timeout is 300 seconds and the default per-page operation
115
- timeout is 15 seconds. Search calls sharing an environment run sequentially;
116
- overlapping MCP calls return `ENV_BUSY`.
117
-
118
- ## Install a published release
119
-
120
- The distribution name is `flashid-auto`. Do not install the unrelated
121
- `linkedin-mcp` distribution as a substitute. To install version 0.2.0 from PyPI:
122
-
123
- ```bash
124
- python -m pip install 'flashid-auto[mcp]==0.2.0'
125
- ```
126
-
127
- The source tree contains the full Chinese integration guide at
128
- `docs/linkedin-mcp.md` and the release procedure at `docs/linkedin-mcp-release.md`.
129
-
130
- License: MIT. This project is independent of LinkedIn and FlashID.
File without changes
File without changes
File without changes
File without changes