Reecopedia

Regulatory search engine for EU textile sustainability law: ESPR, DPP, CSRD, CBAM, CWA 18291.

Should I use this

Quality & Safety

B
Description quality
86%
Schema completeness
74%
Naming quality
93%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (4)

  • LOWTool 'find_exact_text' description lacks action verbin find_exact_text
  • LOWTool 'about_reecopedia' has short descriptionin about_reecopedia
  • LOWTool 'about_reecopedia' description lacks action verbin about_reecopedia
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,267Tokens (tool definitions)
~660 BTypical response size
Moderate attention impact (0.99% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "reecopedia": {
      "url": "https://ia.reeco.eco/mcp"
    }
  }
}

Remote endpoints

https://ia.reeco.eco/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_eu_textile_regulations(query, top_k, scope)

Search regulatory evidence in English legal register. Cite original document and unit; verify each claim. Optional scope narrows corpus partitions. No model assesses the answer in this MCP tool; the client must verify each claim against the returned text. Query embeddings use Alibaba; candidate passages are sent to Jina for reranking.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "top_k": {
      "default": 20,
      "type": "integer"
    },
    "scope": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢search(query)

Return cited corpus results by id; use fetch for full source text. The client verifies the evidence. Query embeddings use Alibaba; candidate passages go to Jina for reranking.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢fetch(id)

Fetch original text by an opaque id from search or document_outline. Pass ids unchanged. Navigation containers have citable=false and child ids, not source evidence. Historical page identifiers return migration guidance.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢document_outline(document)

Return a compact navigation-v1 tree of indexed source text. Source metadata is shared in documents; depth/path encode hierarchy. Pass opaque ids unchanged to fetch. Warnings expose uncertain structure; citable=false marks navigation containers or unverified fragments.

Input Schema

{
  "type": "object",
  "properties": {
    "document": {
      "type": "string"
    }
  },
  "required": [
    "document"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢find_exact_text(text, document, max_results, case_sensitive)

Locate a literal string in the current corpus, optionally restricted to a document.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string"
    },
    "document": {
      "default": "",
      "type": "string"
    },
    "max_results": {
      "default": 20,
      "type": "integer"
    },
    "case_sensitive": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢list_corpus_documents(contains, max_results)

List indexed document names matching a substring.

Input Schema

{
  "type": "object",
  "properties": {
    "contains": {
      "default": "",
      "type": "string"
    },
    "max_results": {
      "default": 100,
      "type": "integer"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢about_reecopedia

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡report_answer_issue(query, reason)

File a report that an answer built from Reecopedia search results was wrong, misleading or incomplete. The report (the query and the reason, nothing else — no personal data) enters Reecopedia's human curation queue and is reviewed weekly to correct the corpus and retrieval quality. THIS TOOL WRITES. Use it only when the user has asked for the problem to be reported, and send only the original query and the reason the user gave. Do not call it on your own initiative and do not add anything the user did not say. ANNOTATIONS — why each hint is set the way it is, based on this tool's actual behaviour. readOnlyHint=false: this is the only tool that writes; it appends one record (the query and the reason, nothing else) to Reecopedia's internal human curation queue. destructiveHint=false: the write is append-only; it modifies and deletes nothing that already exists. idempotentHint=false: two calls can append two records — de-duplication covers only an identical query+reason pair within the same hour. openWorldHint=false: the record stays in the internal queue; it is not sent anywhere outside Reecopedia.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The original search query the reported answer was built from."
    },
    "reason": {
      "type": "string",
      "description": "The user's reason why the answer was wrong (min 10 chars —\ne.g. which fact was incorrect, which source was misread, what was\nmissing)."
    }
  },
  "required": [
    "query",
    "reason"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools