fless-mcp 1.0.0__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.
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: fless-mcp
3
+ Version: 1.0.0
4
+ Summary: Fless apartment-hunting MCP server (stdio proxy to https://mcp.fless.io/mcp) — research cities, neighborhoods, rents, and build pre-filled hunt links.
5
+ Author-email: Fless <dev@folyfoly.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://fless.io/ai-agents
8
+ Project-URL: Documentation, https://fless.io/hunt-how-to.md
9
+ Project-URL: Repository, https://github.com/fless-io/skills
10
+ Project-URL: Changelog, https://github.com/fless-io/skills/blob/main/CHANGELOG.md
11
+ Keywords: mcp,apartment,hunting,rental,ai,agent,llm
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Communications :: Chat
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+
20
+ # fless-mcp
21
+
22
+ [Fless](https://fless.io) apartment-hunting tools for any MCP-capable AI agent — a zero-dependency stdio proxy to the hosted Fless MCP server at `https://mcp.fless.io/mcp`.
23
+
24
+ ## What it does
25
+
26
+ Your agent researches apartments with live Fless data and hands you a pre-filled hunt link:
27
+
28
+ - **search_cities** — live + coming-soon cities
29
+ - **get_city_overview** — neighborhoods with median rents + WalkRating™ scores
30
+ - **get_neighborhood** — full detail (rents, scores, POI counts)
31
+ - **get_hunt_requirements** — every hunt field, enum, binary restriction (55+, pets, smoking), transparent pricing
32
+ - **build_hunt_link** — validate a brief → URL that pre-fills the entire hunt form
33
+ - **check_hunt_link** — created → opened → started lifecycle
34
+ - **search / fetch** — ChatGPT deep-research compatibility pair
35
+
36
+ All tools are read-only, no auth needed. Your human creates the account, verifies email, and pays — agents never do.
37
+
38
+ ## Install
39
+
40
+ ### Claude Desktop / any stdio MCP client
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "fless": {
46
+ "command": "uvx",
47
+ "args": ["fless-mcp"]
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ Or with pip:
54
+
55
+ ```bash
56
+ pip install fless-mcp
57
+ fless-mcp # speaks JSON-RPC on stdio
58
+ ```
59
+
60
+ ### Remote (no install needed)
61
+
62
+ Most clients connect to the hosted server directly:
63
+
64
+ ```
65
+ https://mcp.fless.io/mcp
66
+ ```
67
+
68
+ See per-assistant setup guides (Claude, ChatGPT, Perplexity, Grok, Mistral Vibe, Codex, OpenClaw, Hermes): **https://fless.io/ai-agents**
69
+
70
+ ## Environment
71
+
72
+ | Variable | Default | Purpose |
73
+ |---|---|---|
74
+ | `FLESS_MCP_URL` | `https://mcp.fless.io/mcp` | Remote server (fallback: `https://www.fless.io/mcp`) |
75
+ | `FLESS_MCP_UA` | `fless-mcp/1.0.0 (+https://fless.io/ai-agents)` | User-Agent |
76
+
77
+ ## The skill (recommended companion)
78
+
79
+ `fless-apartment-hunt` — an [Agent Skills](https://agentskills.io)-standard skill that teaches your agent the full workflow:
80
+
81
+ ```bash
82
+ hermes skills install well-known:https://fless.io
83
+ # or from GitHub:
84
+ npx skills add fless-io/skills
85
+ ```
86
+
87
+ ## License
88
+
89
+ MIT
@@ -0,0 +1,70 @@
1
+ # fless-mcp
2
+
3
+ [Fless](https://fless.io) apartment-hunting tools for any MCP-capable AI agent — a zero-dependency stdio proxy to the hosted Fless MCP server at `https://mcp.fless.io/mcp`.
4
+
5
+ ## What it does
6
+
7
+ Your agent researches apartments with live Fless data and hands you a pre-filled hunt link:
8
+
9
+ - **search_cities** — live + coming-soon cities
10
+ - **get_city_overview** — neighborhoods with median rents + WalkRating™ scores
11
+ - **get_neighborhood** — full detail (rents, scores, POI counts)
12
+ - **get_hunt_requirements** — every hunt field, enum, binary restriction (55+, pets, smoking), transparent pricing
13
+ - **build_hunt_link** — validate a brief → URL that pre-fills the entire hunt form
14
+ - **check_hunt_link** — created → opened → started lifecycle
15
+ - **search / fetch** — ChatGPT deep-research compatibility pair
16
+
17
+ All tools are read-only, no auth needed. Your human creates the account, verifies email, and pays — agents never do.
18
+
19
+ ## Install
20
+
21
+ ### Claude Desktop / any stdio MCP client
22
+
23
+ ```json
24
+ {
25
+ "mcpServers": {
26
+ "fless": {
27
+ "command": "uvx",
28
+ "args": ["fless-mcp"]
29
+ }
30
+ }
31
+ }
32
+ ```
33
+
34
+ Or with pip:
35
+
36
+ ```bash
37
+ pip install fless-mcp
38
+ fless-mcp # speaks JSON-RPC on stdio
39
+ ```
40
+
41
+ ### Remote (no install needed)
42
+
43
+ Most clients connect to the hosted server directly:
44
+
45
+ ```
46
+ https://mcp.fless.io/mcp
47
+ ```
48
+
49
+ See per-assistant setup guides (Claude, ChatGPT, Perplexity, Grok, Mistral Vibe, Codex, OpenClaw, Hermes): **https://fless.io/ai-agents**
50
+
51
+ ## Environment
52
+
53
+ | Variable | Default | Purpose |
54
+ |---|---|---|
55
+ | `FLESS_MCP_URL` | `https://mcp.fless.io/mcp` | Remote server (fallback: `https://www.fless.io/mcp`) |
56
+ | `FLESS_MCP_UA` | `fless-mcp/1.0.0 (+https://fless.io/ai-agents)` | User-Agent |
57
+
58
+ ## The skill (recommended companion)
59
+
60
+ `fless-apartment-hunt` — an [Agent Skills](https://agentskills.io)-standard skill that teaches your agent the full workflow:
61
+
62
+ ```bash
63
+ hermes skills install well-known:https://fless.io
64
+ # or from GitHub:
65
+ npx skills add fless-io/skills
66
+ ```
67
+
68
+ ## License
69
+
70
+ MIT
@@ -0,0 +1,33 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "fless-mcp"
7
+ version = "1.0.0"
8
+ description = "Fless apartment-hunting MCP server (stdio proxy to https://mcp.fless.io/mcp) — research cities, neighborhoods, rents, and build pre-filled hunt links."
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ requires-python = ">=3.9"
12
+ authors = [{name = "Fless", email = "dev@folyfoly.com"}]
13
+ keywords = ["mcp", "apartment", "hunting", "rental", "ai", "agent", "llm"]
14
+ classifiers = [
15
+ "Development Status :: 5 - Production/Stable",
16
+ "Intended Audience :: Developers",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Programming Language :: Python :: 3",
19
+ "Topic :: Communications :: Chat",
20
+ ]
21
+ dependencies = []
22
+
23
+ [project.urls]
24
+ Homepage = "https://fless.io/ai-agents"
25
+ Documentation = "https://fless.io/hunt-how-to.md"
26
+ Repository = "https://github.com/fless-io/skills"
27
+ Changelog = "https://github.com/fless-io/skills/blob/main/CHANGELOG.md"
28
+
29
+ [project.scripts]
30
+ fless-mcp = "fless_mcp.proxy:main"
31
+
32
+ [tool.setuptools.packages.find]
33
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,2 @@
1
+ """fless-mcp — stdio proxy for the Fless remote MCP server (https://mcp.fless.io/mcp)."""
2
+ __version__ = "1.0.0"
@@ -0,0 +1,5 @@
1
+ """Entry point: python -m fless_mcp"""
2
+ from .proxy import main
3
+
4
+ if __name__ == "__main__":
5
+ main()
@@ -0,0 +1,70 @@
1
+ """Stdio <-> Streamable-HTTP proxy for the Fless MCP server.
2
+
3
+ Bridges local stdio MCP clients (Claude Desktop, etc.) to the remote
4
+ Fless server at https://mcp.fless.io/mcp so `uvx fless-mcp` works as a
5
+ local server entry with zero configuration.
6
+ """
7
+ import json
8
+ import os
9
+ import sys
10
+ import urllib.request
11
+
12
+ REMOTE = os.environ.get("FLESS_MCP_URL", "https://mcp.fless.io/mcp")
13
+ UA = os.environ.get("FLESS_MCP_UA", "fless-mcp/1.0.0 (+https://fless.io/ai-agents)")
14
+
15
+
16
+ def main():
17
+ """Pump newline-delimited JSON-RPC between stdin and the remote server.
18
+
19
+ The Fless server is stateless (read-only tools), so each request is
20
+ forwarded independently and the response body is written back verbatim.
21
+ """
22
+ while True:
23
+ line = sys.stdin.readline()
24
+ if not line:
25
+ break
26
+ line = line.strip()
27
+ if not line:
28
+ continue
29
+ try:
30
+ # Parse to validate; forward the original text unchanged
31
+ json.loads(line)
32
+ except json.JSONDecodeError:
33
+ sys.stderr.write(f"fless-mcp: dropping non-JSON line: {line[:80]}\n")
34
+ continue
35
+
36
+ req = urllib.request.Request(
37
+ REMOTE,
38
+ data=line.encode(),
39
+ headers={
40
+ "Content-Type": "application/json",
41
+ "Accept": "application/json, text/event-stream",
42
+ "User-Agent": UA,
43
+ },
44
+ method="POST",
45
+ )
46
+ try:
47
+ with urllib.request.urlopen(req, timeout=120) as resp:
48
+ body = resp.read().decode(errors="replace")
49
+ ct = resp.headers.get("content-type", "")
50
+ except Exception as e:
51
+ err = {"jsonrpc": "2.0", "id": None,
52
+ "error": {"code": -32000, "message": f"fless-mcp proxy error: {e}"}}
53
+ sys.stdout.write(json.dumps(err) + "\n")
54
+ sys.stdout.flush()
55
+ continue
56
+
57
+ if "text/event-stream" in ct:
58
+ # Unwrap SSE: emit each data: payload as its own JSON line
59
+ for sse_line in body.splitlines():
60
+ if sse_line.startswith("data:"):
61
+ payload = sse_line[5:].strip()
62
+ if payload:
63
+ sys.stdout.write(payload + "\n")
64
+ else:
65
+ sys.stdout.write(body.rstrip("\n") + "\n")
66
+ sys.stdout.flush()
67
+
68
+
69
+ if __name__ == "__main__":
70
+ main()
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: fless-mcp
3
+ Version: 1.0.0
4
+ Summary: Fless apartment-hunting MCP server (stdio proxy to https://mcp.fless.io/mcp) — research cities, neighborhoods, rents, and build pre-filled hunt links.
5
+ Author-email: Fless <dev@folyfoly.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://fless.io/ai-agents
8
+ Project-URL: Documentation, https://fless.io/hunt-how-to.md
9
+ Project-URL: Repository, https://github.com/fless-io/skills
10
+ Project-URL: Changelog, https://github.com/fless-io/skills/blob/main/CHANGELOG.md
11
+ Keywords: mcp,apartment,hunting,rental,ai,agent,llm
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Communications :: Chat
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+
20
+ # fless-mcp
21
+
22
+ [Fless](https://fless.io) apartment-hunting tools for any MCP-capable AI agent — a zero-dependency stdio proxy to the hosted Fless MCP server at `https://mcp.fless.io/mcp`.
23
+
24
+ ## What it does
25
+
26
+ Your agent researches apartments with live Fless data and hands you a pre-filled hunt link:
27
+
28
+ - **search_cities** — live + coming-soon cities
29
+ - **get_city_overview** — neighborhoods with median rents + WalkRating™ scores
30
+ - **get_neighborhood** — full detail (rents, scores, POI counts)
31
+ - **get_hunt_requirements** — every hunt field, enum, binary restriction (55+, pets, smoking), transparent pricing
32
+ - **build_hunt_link** — validate a brief → URL that pre-fills the entire hunt form
33
+ - **check_hunt_link** — created → opened → started lifecycle
34
+ - **search / fetch** — ChatGPT deep-research compatibility pair
35
+
36
+ All tools are read-only, no auth needed. Your human creates the account, verifies email, and pays — agents never do.
37
+
38
+ ## Install
39
+
40
+ ### Claude Desktop / any stdio MCP client
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "fless": {
46
+ "command": "uvx",
47
+ "args": ["fless-mcp"]
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ Or with pip:
54
+
55
+ ```bash
56
+ pip install fless-mcp
57
+ fless-mcp # speaks JSON-RPC on stdio
58
+ ```
59
+
60
+ ### Remote (no install needed)
61
+
62
+ Most clients connect to the hosted server directly:
63
+
64
+ ```
65
+ https://mcp.fless.io/mcp
66
+ ```
67
+
68
+ See per-assistant setup guides (Claude, ChatGPT, Perplexity, Grok, Mistral Vibe, Codex, OpenClaw, Hermes): **https://fless.io/ai-agents**
69
+
70
+ ## Environment
71
+
72
+ | Variable | Default | Purpose |
73
+ |---|---|---|
74
+ | `FLESS_MCP_URL` | `https://mcp.fless.io/mcp` | Remote server (fallback: `https://www.fless.io/mcp`) |
75
+ | `FLESS_MCP_UA` | `fless-mcp/1.0.0 (+https://fless.io/ai-agents)` | User-Agent |
76
+
77
+ ## The skill (recommended companion)
78
+
79
+ `fless-apartment-hunt` — an [Agent Skills](https://agentskills.io)-standard skill that teaches your agent the full workflow:
80
+
81
+ ```bash
82
+ hermes skills install well-known:https://fless.io
83
+ # or from GitHub:
84
+ npx skills add fless-io/skills
85
+ ```
86
+
87
+ ## License
88
+
89
+ MIT
@@ -0,0 +1,10 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/fless_mcp/__init__.py
4
+ src/fless_mcp/__main__.py
5
+ src/fless_mcp/proxy.py
6
+ src/fless_mcp.egg-info/PKG-INFO
7
+ src/fless_mcp.egg-info/SOURCES.txt
8
+ src/fless_mcp.egg-info/dependency_links.txt
9
+ src/fless_mcp.egg-info/entry_points.txt
10
+ src/fless_mcp.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ fless-mcp = fless_mcp.proxy:main
@@ -0,0 +1 @@
1
+ fless_mcp