A Low-Code MCP Framework for Building Complex and Innovative RAG Pipelines
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 41 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
assign_citation_ids
-
assign_citation_ids_stateful
-
check_model_state
-
evaluate
-
evaluate_trec
-
evaluate_trec_pvalue
-
evisrag_output_extract_from_special
-
get_global_memory
-
greet
-
init_citation_registry
-
ircot_check_end
-
ircot_extract_ans
-
ircot_get_first_sent
-
iterretgen_nextquery
-
merge_passages
-
output_extract_from_boxed
-
r1_searcher_check
-
r1_searcher_query_extract
-
route1
-
route2
-
save_memory
-
search_o1_combine_final_information
-
search_o1_combine_list
-
search_o1_extract_final_information
-
search_o1_init_list
-
search_o1_query_extract
-
search_o1_reasoning_extract
-
search_r1_check
-
search_r1_query_extract
-
surveycpm_after_extend
-
surveycpm_after_init_plan
-
surveycpm_after_write
-
surveycpm_check_completion
-
surveycpm_format_output
-
surveycpm_init_citation_registry
-
surveycpm_parse_search_response
-
surveycpm_process_passages
-
surveycpm_process_passages_with_citation
-
surveycpm_state_init
-
surveycpm_update_state
-
webnote_check_page
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 015e838 · analyzer v33 · 2w ago
skills & prompt files 2
- agent-rules OpenBMB-UltraRAG-015e838/AGENTS.md
- agent-rules OpenBMB-UltraRAG-015e838/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 92
filesystem 21
- fs OpenBMB-UltraRAG-015e838/script/case_study.py :63
txt = open(path, "r", encoding="utf-8").read().strip() - fs OpenBMB-UltraRAG-015e838/script/deploy_retriever_server.py :31
with open(path, "rb") as f: - fs (weak) OpenBMB-UltraRAG-015e838/servers/benchmark/src/benchmark.py :3
from pathlib import Path - fs (weak) OpenBMB-UltraRAG-015e838/servers/corpus/src/corpus.py :6
import shutil - fs OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :289
with open(qrels_path, "r", encoding="utf-8") as f: - fs OpenBMB-UltraRAG-015e838/servers/generation/src/generation.py :28
devnull = os.open(os.devnull, os.O_WRONLY) - fs OpenBMB-UltraRAG-015e838/servers/generation/src/local_generation.py :101
with open(s, "rb") as f: - fs OpenBMB-UltraRAG-015e838/servers/memory/src/memory.py :4
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/servers/prompt/src/prompt.py :3
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/servers/retriever/src/index_backends/faiss_backend.py :4
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/servers/retriever/src/index_backends/milvus_backend.py :5
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/servers/retriever/src/retriever.py :4
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/src/ultrarag/api.py :51
with open(param_file, "r") as f: - fs OpenBMB-UltraRAG-015e838/src/ultrarag/client.py :10
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/src/ultrarag/server.py :8
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/ui/backend/app.py :12
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/ui/backend/auth.py :6
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/ui/backend/chat_store.py :7
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/ui/backend/kb_visibility_store.py :6
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/ui/backend/pipeline_manager.py :11
from pathlib import Path - fs OpenBMB-UltraRAG-015e838/ui/backend/storage_paths.py :4
from pathlib import Path
shell / exec 3
- shell (weak) OpenBMB-UltraRAG-015e838/servers/corpus/src/corpus.py :7
import subprocess - shell OpenBMB-UltraRAG-015e838/src/ultrarag/mcp_exceptions.py :2
import subprocess - shell OpenBMB-UltraRAG-015e838/src/ultrarag/utils.py :5
import subprocess
network 5
- net OpenBMB-UltraRAG-015e838/servers/reranker/src/reranker.py :5
import aiohttp - net OpenBMB-UltraRAG-015e838/servers/retriever/src/index_backends/milvus_backend.py :9
from urllib.parse import urlparse - net OpenBMB-UltraRAG-015e838/servers/retriever/src/retriever.py :7
import aiohttp - net OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/zhipuai_backend.py :7
import aiohttp - net OpenBMB-UltraRAG-015e838/ui/backend/app.py :14
from urllib.parse import quote
secrets 6
- secrets OpenBMB-UltraRAG-015e838/servers/generation/src/generation.py :221
api_key = cfg.get("api_key") or os.environ.get("LLM_API_KEY") - secrets OpenBMB-UltraRAG-015e838/servers/generation/src/local_generation.py :35
api_key = openai_cfg.get("api_key") or os.environ.get("LLM_API_KEY") - secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/retriever.py :323
api_key = self.cfg.get("api_key") or os.environ.get("RETRIEVER_API_KEY") - secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/exa_backend.py :26
api_key = self.config.get("api_key") or os.environ.get("EXA_API_KEY", "") - secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/tavily_backend.py :37
api_key = self.config.get("api_key") or os.environ.get("TAVILY_API_KEY", "") - secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/zhipuai_backend.py :18
api_key = self.config.get("api_key") or os.environ.get("ZHIPUAI_API_KEY", "")
database 3
- db OpenBMB-UltraRAG-015e838/ui/backend/auth.py :4
import sqlite3 - db OpenBMB-UltraRAG-015e838/ui/backend/chat_store.py :5
import sqlite3 - db OpenBMB-UltraRAG-015e838/ui/backend/kb_visibility_store.py :4
import sqlite3
tool registrations 41
- search_r1_query_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :11
- r1_searcher_query_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :39
- iterretgen_nextquery OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :67
- output_extract_from_boxed OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :88
- ircot_get_first_sent OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :127
- ircot_extract_ans OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :149
- search_o1_init_list OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :170
- search_o1_combine_list OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :189
- search_o1_query_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :230
- search_o1_reasoning_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :257
- search_o1_extract_final_information OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :280
- search_o1_combine_final_information OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :303
- merge_passages OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :335
- evisrag_output_extract_from_special OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :355
- assign_citation_ids OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :376
- init_citation_registry OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :428
- assign_citation_ids_stateful OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :442
- surveycpm_init_citation_registry OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :504
- surveycpm_process_passages_with_citation OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :518
- surveycpm_state_init OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1084
- surveycpm_parse_search_response OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1111
- surveycpm_process_passages OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1141
- surveycpm_after_init_plan OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1188
- surveycpm_after_write OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1247
- surveycpm_after_extend OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1326
- surveycpm_update_state OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1411
- surveycpm_check_completion OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1537
- surveycpm_format_output OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1781
- evaluate OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :479
- evaluate_trec OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :501
- evaluate_trec_pvalue OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :556
- get_global_memory OpenBMB-UltraRAG-015e838/servers/memory/src/memory.py :53
- save_memory OpenBMB-UltraRAG-015e838/servers/memory/src/memory.py :73
- route1 OpenBMB-UltraRAG-015e838/servers/router/src/router.py :23
- route2 OpenBMB-UltraRAG-015e838/servers/router/src/router.py :46
- ircot_check_end OpenBMB-UltraRAG-015e838/servers/router/src/router.py :60
- search_r1_check OpenBMB-UltraRAG-015e838/servers/router/src/router.py :80
- webnote_check_page OpenBMB-UltraRAG-015e838/servers/router/src/router.py :104
- r1_searcher_check OpenBMB-UltraRAG-015e838/servers/router/src/router.py :124
- check_model_state OpenBMB-UltraRAG-015e838/servers/router/src/router.py :205
- greet OpenBMB-UltraRAG-015e838/servers/sayhello/src/sayhello.py :8
declared dependencies 44
- fastmcp@>=3.3.1,<3.4.5
- mcp@*
- rich@*
- pandas@*
- Jinja2@*
- openai@*
- httpx@*
- python-dotenv@*
- PyYAML@*
- tqdm@*
- requests@*
- orjson@*
- tabulate@*
- aiohttp@*
- pillow@*
- flask@*
- numpy@>=2,<2.4
- fakeredis@*
- pymilvus@*
- pypinyin@*
- jieba@*
- charset-normalizer@*
- python-docx@*
- pymupdf@*
- chonkie@*
- tiktoken@*
- infinity-emb@*
- sentence-transformers@*
- bm25s@*
- faiss-gpu-cu12@*
- exa_py@*
- tavily-python@*
- numba@*
- torch@*
- fastapi@*
- uvicorn@*
- pydantic@*
- vllm@==0.22.1
- transformers@*
- xgrammar@<0.2.4
- rouge-score@*
- pytrec-eval-terrier@*
- mineru@>=3,<4
- ultrarag@*
transport_posture 1
- binds all interfaces (0.0.0.0) OpenBMB-UltraRAG-015e838/ui/backend/app.py :2852
"Security warning: Debug mode should not be enabled with host='0.0.0.0'. "