About assetlens
assetlens is a CLI and stdio MCP server that gives agents read-only access to public real-world asset marketplace listings, projects, and documents. It supports filtered searches, a unified search, and fetching full documents without an account or token.
Key features
- 01Search marketplace listings
- 02Search public projects
- 03Unified listings and projects search
- 04Fetch full public documents
- 05Read onboarding information
Use cases
- 01Find public equipment or energy listings
- 02Search projects related to mining
- 03Retrieve a full document from a search hit
MCP support
Exposes tools for onboarding information, listing and project searches, unified search, and fetching public documents. Calls are forwarded to a hosted MCP endpoint using its anonymous tier.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
5Saved tool list · updated 1w ago
This tool takes no parameters.
Details
From the project READMEassetlens
assetlens gives an agent read-only access to the public side of a marketplace for real-world assets — agro and energy first, growing into mining, equipment, and industrial services. It wraps the platform's anonymous tier: no account, no token, and nothing that writes. You can read the onboarding document, search marketplace listings, search projects, run one unified search across both, and fetch the full public document behind a search hit. One binary serves a command-line interface and a stdio MCP server.
The upstream is a hosted MCP endpoint spoken to over JSON-RPC 2.0.
The anonymous tier is documented at 60 requests per minute per
client; this tool simply forwards each call, unwraps the result
envelope (the payload arrives as JSON inside the result's text
content, mirrored in structured content), and prints what came
back. Set EPINU_MCP_URL to point at a different endpoint; the
documented production endpoint is the default.
Install
npx @reneturcios/assetlens search --query ASIC
Or run the container image:
docker run -i ghcr.io/cloudcorprecords/assetlens
The container defaults to the MCP server (see below); pass CLI arguments to use it as a CLI instead.
CLI
assetlens getting_started
assetlens marketplace_listings_search --query "ASIC repair"
assetlens marketplace_listings_search --category equipment --max-price 3000 --limit 5
assetlens projects_search --query mining
assetlens search --query ASIC
assetlens fetch --id listing:f7edbcad-ecbc-46d0-a8f6-162fc8219089
assetlens --version
Every command prints the upstream payload as JSON (the onboarding
document prints as text). Exit codes: 0 on success, 1 on a
runtime or upstream error, 2 for usage errors. Arguments are
validated before any network call: an undocumented category, a
missing or over-long query or id, or an unknown flag is a usage
error, never a network request.
Search arguments follow the platform's published tables exactly.
For marketplace_listings_search and projects_search, the
tables mark maxPrice, limit, and cursor optional and leave
query (and category) unmarked, so none of them are required
here. search requires query (1–200 characters) and fetch
requires id (1–120 characters). category accepts only product,
service, repair_services, equipment, or energy.
What the tools return
marketplace_listings_searchreturnsresults(listings with fields such aslisting_id,title,category,pricing_mode,price— a number ornull—status, andlocation_address), anext_cursor(nullwhen there is no further page), and thelimitused.projects_searchreturnsprojects, each withproject_id,name, andsummary.searchis deliberately shallow: each hit carries onlyid,title, andurl. The id is prefixed —project:<uuid>orlisting:<uuid>— so you can tell which side of the platform a hit came from.fetchreturns the full document for one id:id,title,text,url, andmetadata(for a listing, itstype,category,pricing_mode,price,availability_type, andlocation_address). An unknown or malformed id is an upstream tool error —Resource not found.with status code 404 — and assetlens surfaces it as an error rather than inventing a result.
MCP server
One bin serves both faces. The mcp subcommand starts a stdio MCP
server:
npx -y @reneturcios/assetlens mcp
MCP client configuration:
{
"mcpServers": {
"assetlens": {
"command": "npx",
"args": ["-y", "@reneturcios/assetlens", "mcp"]
}
}
}
Tools
| Tool | Input | What it returns |
|---|---|---|
getting_started | (none) | The platform onboarding document for agents: operating model, auth tiers, common flows, and etiquette. |
marketplace_listings_search | query?, category?, maxPrice?, limit?, cursor? | Public marketplace listings matching the filters, with a paging cursor. |
projects_search | query?, limit?, cursor? | Public projects matching the query. |
search | query (required, 1–200 chars) | Unified hits over projects and listings: {id, title, url} only. |
fetch | id (required, 1–120 chars) | The full public document for one search hit. |
What is not included
With a delegated token the same platform exposes more tools —
identity, proposal-creating writes, and proposal listing among
them (whoami, marketplace_listing_create, project_create,
proposals_list_my, and further unnamed scoped tools, plus the
projects_get_deep_dive and marketplace_listing_get calls that
fetch wraps upstream). The platform names those tools in prose
but publishes no argument tables for them, so they are omitted
here rather than rebuilt from guesses. Nothing in this package
creates proposals or writes anything.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, fake fetch only — no network
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.