agentrynku-mcp 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +118 -0
- package/TOOLS.md +166 -0
- package/bin/agentrynku-mcp.js +73 -0
- package/examples/claude-code.sh +4 -0
- package/examples/claude-desktop.json +9 -0
- package/examples/cursor-mcp.json +9 -0
- package/package.json +44 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Agent Rynku
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Agent Rynku MCP: Warsaw Stock Exchange (GPW) data for your AI agent
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/agentrynku-mcp)
|
|
4
|
+
[](https://registry.modelcontextprotocol.io/v0/servers?search=pl.agentrynku)
|
|
5
|
+
|
|
6
|
+
**[Agent Rynku](https://agentrynku.pl/mcp)** is a hosted [Model Context Protocol](https://modelcontextprotocol.io) server with 93 tools for the Polish stock market: live and historical quotes, ESPI/EBI filings with an assessment of each one, quarterly KPIs extracted from company documents, earnings forecasts with a track record, and portfolio analytics in PLN.
|
|
7
|
+
|
|
8
|
+
Connect it to Claude, Cursor, or any MCP client and ask things like:
|
|
9
|
+
|
|
10
|
+
- "What did KGHM report today, and how does it compare with the forecast?"
|
|
11
|
+
- "Show WIG20 companies after their latest results."
|
|
12
|
+
- "Which of my positions are above 20% concentration?"
|
|
13
|
+
- "How much tax will I owe on this year's sales?"
|
|
14
|
+
|
|
15
|
+
> Polski opis jest [niżej](#po-polsku).
|
|
16
|
+
|
|
17
|
+
## Quick start
|
|
18
|
+
|
|
19
|
+
**1. Get an API key.** Create a free account at [agentrynku.pl](https://agentrynku.pl/login) and generate a key in [settings](https://agentrynku.pl/settings). The free account covers unlimited data tool calls; only the LLM-backed companion queries are metered. The bridge below makes one check call per start to verify the key.
|
|
20
|
+
|
|
21
|
+
**2. Connect your client.** The server speaks Streamable HTTP at:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
https://agentrynku.pl/api/mcp
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
with the header `Authorization: Bearer YOUR_KEY`.
|
|
28
|
+
|
|
29
|
+
### Claude Code
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
claude mcp add --transport http agentrynku https://agentrynku.pl/api/mcp \
|
|
33
|
+
--header "Authorization: Bearer YOUR_KEY"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Cursor and other clients with remote HTTP support
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"mcpServers": {
|
|
41
|
+
"agentrynku": {
|
|
42
|
+
"type": "http",
|
|
43
|
+
"url": "https://agentrynku.pl/api/mcp",
|
|
44
|
+
"headers": { "Authorization": "Bearer YOUR_KEY" }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Claude Desktop and other clients that only run local commands
|
|
51
|
+
|
|
52
|
+
This package is a small stdio bridge to the hosted server (it uses [`mcp-remote`](https://www.npmjs.com/package/mcp-remote)):
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"mcpServers": {
|
|
57
|
+
"agentrynku": {
|
|
58
|
+
"command": "npx",
|
|
59
|
+
"args": ["-y", "agentrynku-mcp"],
|
|
60
|
+
"env": { "AGENTRYNKU_API_KEY": "YOUR_KEY" }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
More configs in [`examples/`](examples).
|
|
67
|
+
|
|
68
|
+
**Try before signing up:** `initialize` and `tools/list` work without a key, so you can see the full catalogue first:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
curl -s https://agentrynku.pl/api/mcp \
|
|
72
|
+
-H 'Content-Type: application/json' \
|
|
73
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
74
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## What is inside
|
|
78
|
+
|
|
79
|
+
| Area | Tools | Examples |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| Quotes and market | 10 | `get_spot_price`, `get_intraday_quote`, `get_price_series`, `whats_moving_now`, `sector_pulse_pl` |
|
|
82
|
+
| Filings and reports | 10 | `get_news_history`, `get_report_event`, `get_quarterly_kpis`, `get_company_analysis`, `get_earnings_calendar` |
|
|
83
|
+
| Scores, screens and rankings | 10 | `get_stock_rankings`, `get_sygnal_score`, `find_opportunities`, `find_dip_candidates`, `run_predictive_scan` |
|
|
84
|
+
| Forecasts and drivers | 6 | `get_forecast`, `get_forecast_accuracy`, `get_drivers`, `get_factor_context` |
|
|
85
|
+
| Signals, alerts and events | 19 | `get_alerts`, `get_asset_signals`, `track_priced_event`, `create_decision_rule` |
|
|
86
|
+
| Portfolio and allocation | 15 | `get_portfolio_context`, `get_concentration_risk`, `recommend_position_size`, `modify_watchlist` |
|
|
87
|
+
| Transactions and tax | 5 | `get_realized_pnl`, `get_transaction_history`, `find_tlh_opportunities` |
|
|
88
|
+
| Market risk | 4 | `get_risk_regime`, `get_risk_dashboard`, `get_event_risks` |
|
|
89
|
+
| Catalyst bonds | 3 | `get_bond_series`, `get_bond_orderbook`, `calculate_early_redemption` |
|
|
90
|
+
| Account, brief and diagnostics | 11 | `get_daily_brief`, `query_companion`, `set_agent_prefs` |
|
|
91
|
+
|
|
92
|
+
Full list with descriptions: **[TOOLS.md](TOOLS.md)**. Portfolio tools read the portfolio you keep in your Agent Rynku account; key scopes decide which tools a key can see.
|
|
93
|
+
|
|
94
|
+
## Scope and limits
|
|
95
|
+
|
|
96
|
+
- **Polish equities only** (GPW main market and NewConnect), deliberately: filings are read in Polish, and extraction is built for the formats the GPW actually uses.
|
|
97
|
+
- Tool names are English. Tool descriptions, the server's instructions, the web app and the source material (filings, reports) are Polish.
|
|
98
|
+
- The server **does not place orders**, does not connect to a brokerage account and **does not give investment advice**. When data is missing it returns a refusal with a reason, never a substitute number.
|
|
99
|
+
- Intraday quotes come from a delayed GPW feed (typically around 25 minutes behind).
|
|
100
|
+
|
|
101
|
+
## Links
|
|
102
|
+
|
|
103
|
+
- Server page and full catalogue: [agentrynku.pl/mcp](https://agentrynku.pl/mcp) ([English](https://agentrynku.pl/en/mcp))
|
|
104
|
+
- Methodology of the assessments: [agentrynku.pl/metodologia](https://agentrynku.pl/metodologia)
|
|
105
|
+
- Issues and questions: [GitHub issues](https://github.com/krystiangw/agentrynku-mcp/issues)
|
|
106
|
+
|
|
107
|
+
## Po polsku
|
|
108
|
+
|
|
109
|
+
**Agent Rynku** to serwer MCP z danymi Giełdy Papierów Wartościowych w Warszawie: 93 narzędzia, przez które Twój agent czyta notowania i świece śróddzienne, raporty ESPI i EBI z oceną każdego komunikatu, dane kwartalne wyciągnięte z dokumentów spółek, prognozy wyników z rozliczeniem trafności oraz analitykę portfela w złotych.
|
|
110
|
+
|
|
111
|
+
1. Załóż darmowe konto na [agentrynku.pl](https://agentrynku.pl/login) i wygeneruj klucz API w [ustawieniach](https://agentrynku.pl/settings).
|
|
112
|
+
2. Podłącz klienta pod adres `https://agentrynku.pl/api/mcp` z nagłówkiem `Authorization: Bearer TWOJ_KLUCZ` (przykłady wyżej). Klient, który umie uruchomić tylko lokalne polecenie (np. Claude Desktop), użyje tej paczki: `npx -y agentrynku-mcp` ze zmienną `AGENTRYNKU_API_KEY`.
|
|
113
|
+
|
|
114
|
+
Serwer nie składa zleceń, nie łączy się z rachunkiem maklerskim i nie daje porady inwestycyjnej. Pełny katalog narzędzi po polsku: [agentrynku.pl/mcp](https://agentrynku.pl/mcp) i [TOOLS.md](TOOLS.md).
|
|
115
|
+
|
|
116
|
+
## License
|
|
117
|
+
|
|
118
|
+
The bridge code and this documentation are MIT licensed. Data returned by the server is subject to the [Agent Rynku terms](https://agentrynku.pl/regulamin).
|
package/TOOLS.md
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Tools / Narzędzia
|
|
2
|
+
|
|
3
|
+
93 tools, generated from `tools/list` of https://agentrynku.pl/api/mcp on 2026-09-25. Descriptions are the short Polish summaries the server returns without a key (the same as on https://agentrynku.pl/mcp). With an API key, `tools/list` returns full English descriptions with units and data caveats.
|
|
4
|
+
|
|
5
|
+
## Quotes and market / Notowania i rynek
|
|
6
|
+
|
|
7
|
+
Kursy bieżące, świece dzienne i śróddzienne, ruchy sesji, puls sektorów i anomalie wolumenu na GPW.
|
|
8
|
+
|
|
9
|
+
| Tool | Opis (PL) |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `get_cross_market_peers` | Odpowiedniki spółki na drugim rynku, z korelacją i różnicą wyceny - do porównania GPW z USA. |
|
|
12
|
+
| `get_spot_price` | Bieżąca cena jednej spółki, z informacją, czy pochodzi z zamknięcia, czy z kwotowania w trakcie sesji. |
|
|
13
|
+
| `get_dividends` | Historia i znane przyszłe dywidendy spółki, z kwotą, datą, źródłem i świeżością. |
|
|
14
|
+
| `get_price_series` | Świece OHLC i zmienność zrealizowana - do stop-lossów i wielkości pozycji. |
|
|
15
|
+
| `get_intraday_candles` | Świece godzinowe z bieżącej i poprzednich sesji. |
|
|
16
|
+
| `get_intraday_quote` | Kwotowanie w trakcie sesji: cena, otwarcie, zakres dnia, zmiana wobec zamknięcia. |
|
|
17
|
+
| `get_market_anomalies` | Ruchy cen odstające od zwykłej zmienności spółki, wyłapane automatycznie. |
|
|
18
|
+
| `sector_pulse_pl` | Puls sektorów GPW: które radzą sobie dziś lepiej, a które gorzej. |
|
|
19
|
+
| `whats_moving_now` | Co się dziś rusza na rynku - największe zmiany sesji. |
|
|
20
|
+
| `compare_symbols` | Porównanie kilku spółek obok siebie. |
|
|
21
|
+
|
|
22
|
+
## Filings and reports / Raporty i komunikaty spółek
|
|
23
|
+
|
|
24
|
+
Raporty ESPI i EBI, dane kwartalne wyciągnięte z dokumentów, kalendarz publikacji, konferencje wynikowe i walne zgromadzenia.
|
|
25
|
+
|
|
26
|
+
| Tool | Opis (PL) |
|
|
27
|
+
|---|---|
|
|
28
|
+
| `get_company_analysis` | Analiza fundamentalna spółki przygotowana przez model. |
|
|
29
|
+
| `get_company_dossier` | Źródłowa pamięć decyzyjna: trwałe przewagi, słabości, otwarte ryzyka, potwierdzone wzorce i kontekst biznesowy. |
|
|
30
|
+
| `get_report_event` | Jeden raport kwartalny jako zdarzenie: co mówi, co rozliczył, co zmienił, co zostaje otwarte, z wiekiem i źródłem każdej liczby. |
|
|
31
|
+
| `get_conference_reminders` | Nadchodzące konferencje wynikowe spółek, które śledzisz. |
|
|
32
|
+
| `get_quarterly_kpis` | Wyniki kwartalne spółki: przychód, zysk, bilans i przepływy, wraz z oceną jakości każdego wiersza. |
|
|
33
|
+
| `get_conference_summary` | Streszczenie konferencji wynikowej: cytaty zarządu, prognozy i sygnały ostrzegawcze. |
|
|
34
|
+
| `get_earnings_deepdive` | Pogłębione omówienie raportu kwartalnego: co zaskoczyło, co niepokoi, co zapowiedział zarząd. |
|
|
35
|
+
| `get_wza_summary` | Streszczenie walnego zgromadzenia akcjonariuszy. |
|
|
36
|
+
| `get_news_history` | Historia depesz o spółce razem z ich oceną. |
|
|
37
|
+
| `get_earnings_calendar` | Kalendarz zbliżających się raportów okresowych. |
|
|
38
|
+
|
|
39
|
+
## Scores, screens and rankings / Oceny i rankingi
|
|
40
|
+
|
|
41
|
+
Ocena Agenta Rynku na sześciu wymiarach, rankingi całego rynku i skanery szukające konkretnych układów.
|
|
42
|
+
|
|
43
|
+
| Tool | Opis (PL) |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `get_sygnal_score` | Ocena 0-100 dla spółki z GPW: siedem wymiarów z uzasadnieniem każdego. Do samej oceny wchodzą tylko wymiary z dowodem, najwyżej sześć: płynność pokazujemy osobno i nie punktujemy. |
|
|
46
|
+
| `get_top_opportunities` | Ta sama lista spółek spoza portfela co w kafelku Top okazje na pulpicie. |
|
|
47
|
+
| `find_opportunities` | Wyszukiwanie okazji według zadanych kryteriów. |
|
|
48
|
+
| `find_dip_candidates` | Spółki, które mocno spadły, ale fundamenty trzymają. |
|
|
49
|
+
| `find_overheat_candidates` | Spółki, które urosły szybciej, niż uzasadniają to wyniki. |
|
|
50
|
+
| `run_predictive_scan` | Skan spółek pod kątem zbliżających się raportów i przewidywanego zaskoczenia. |
|
|
51
|
+
| `get_ranking_performance` | Jak ranking sprawdzał się w przeszłości. |
|
|
52
|
+
| `get_stock_rankings` | Ranking spółek GPW według wybranego kryterium. |
|
|
53
|
+
| `rank_revenue_growth` | Ranking wzrostu przychodów. |
|
|
54
|
+
| `rank_thematic` | Ranking spółek w obrębie wybranego motywu inwestycyjnego. |
|
|
55
|
+
|
|
56
|
+
## Forecasts and drivers / Prognozy wyników
|
|
57
|
+
|
|
58
|
+
Prognozy przychodu i zysku na następny kwartał wraz z ich rozliczeniem po publikacji raportu oraz drivery makro.
|
|
59
|
+
|
|
60
|
+
| Tool | Opis (PL) |
|
|
61
|
+
|---|---|
|
|
62
|
+
| `get_forecast` | Prognoza wyników spółki na najbliższe kwartały wraz z wyceną modelową. |
|
|
63
|
+
| `get_forecast_accuracy` | Historyczna celność modeli prognostycznych i to, czy model przeszedł bramkę jakości. |
|
|
64
|
+
| `get_drivers` | Bieżące czynniki makro: surowce, waluty, stopy, nastroje na rynku amerykańskim. |
|
|
65
|
+
| `macro_attribution` | Co najprawdopodobniej stało za ostatnim ruchem WIG20. |
|
|
66
|
+
| `get_evaluation_outcomes` | Rozliczenie dawnych alertów po cenach: co się sprawdziło, a co nie, na tle indeksu. |
|
|
67
|
+
| `get_factor_context` | Deterministyczny kontekst jednej zmiany czynnika dla spółki, zakotwiczony w chwili asKnownAt. |
|
|
68
|
+
|
|
69
|
+
## Portfolio and allocation / Portfel i alokacja
|
|
70
|
+
|
|
71
|
+
Pozycje z wielu rachunków, stopa zwrotu, zmienność, koncentracja i rozjazd wobec docelowych wag.
|
|
72
|
+
|
|
73
|
+
| Tool | Opis (PL) |
|
|
74
|
+
|---|---|
|
|
75
|
+
| `get_portfolio_context` | Pełny obraz portfela użytkownika: pozycje, gotówka, watchlista i cele alokacji. |
|
|
76
|
+
| `get_portfolio_analytics` | Krzywa kapitału portfela dzień po dniu, ze stopą zwrotu, obsunięciem, zmiennością i porównaniem z WIG-iem lub S&P 500. |
|
|
77
|
+
| `get_total_portfolio_view` | Portfel zsumowany ze wszystkich rachunków maklerskich, przeliczony na jedną walutę. |
|
|
78
|
+
| `get_portfolio_value_history` | Historia wartości portfela w czasie. |
|
|
79
|
+
| `recommend_position_size` | Podpowiedź wielkości pozycji na podstawie relacji zysku do ryzyka, zmienności i koncentracji portfela. |
|
|
80
|
+
| `compare_portfolio_risk_reward` | Ranking pozycji i watchlisty według relacji zysku do ryzyka. |
|
|
81
|
+
| `analyze_thesis_exposure` | Rozkład portfela na ogniwa łańcucha wartości AI - gdzie masz ekspozycję, a gdzie dziurę. |
|
|
82
|
+
| `submit_portfolio_snapshot` | Wgranie stanu rachunku z zewnętrznego brokera. |
|
|
83
|
+
| `get_portfolio_stats` | Statystyki ryzyka i wyniku portfela liczone z historii transakcji. |
|
|
84
|
+
| `recommend_diversification` | Propozycje dywersyfikacji tam, gdzie portfel jest skupiony. |
|
|
85
|
+
| `suggest_order_size` | Wielkość zlecenia z uwzględnieniem dostępnej gotówki na konkretnym rachunku. |
|
|
86
|
+
| `get_concentration_risk` | Ile portfela stoi na jednej spółce, sektorze i rynku. |
|
|
87
|
+
| `modify_holdings` | Ręczna zmiana pozycji w portfelu. |
|
|
88
|
+
| `set_cash_balance` | Ustawienie salda gotówki na rachunku. |
|
|
89
|
+
| `modify_watchlist` | Dodanie lub usunięcie spółki z watchlisty. |
|
|
90
|
+
|
|
91
|
+
## Transactions and tax / Transakcje i podatki
|
|
92
|
+
|
|
93
|
+
Historia realizacji, zysk zrealizowany, jakość egzekucji wobec VWAP i wyszukiwanie strat do rozliczenia podatkowego.
|
|
94
|
+
|
|
95
|
+
| Tool | Opis (PL) |
|
|
96
|
+
|---|---|
|
|
97
|
+
| `submit_broker_transactions` | Wgranie historii transakcji do rozliczeń i podatków. |
|
|
98
|
+
| `get_realized_pnl` | Zrealizowany wynik od początku roku i okazje do rozliczenia strat podatkowych. |
|
|
99
|
+
| `get_transaction_history` | Historia transakcji użytkownika, od najnowszej. |
|
|
100
|
+
| `analyze_trade_outcome` | Rozliczenie pojedynczej transakcji: co wyszło, a co nie. |
|
|
101
|
+
| `find_tlh_opportunities` | Pozycje ze stratą, którą da się odliczyć od podatku w tym roku. |
|
|
102
|
+
|
|
103
|
+
## Signals, alerts and events / Sygnały, alerty i zdarzenia
|
|
104
|
+
|
|
105
|
+
Sygnały na spółkach z rozliczeniem trafności, alerty, zdarzenia wyceniane przez rynek i własne reguły decyzyjne.
|
|
106
|
+
|
|
107
|
+
| Tool | Opis (PL) |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `get_alerts` | Alerty dostarczone temu użytkownikowi, z filtrami po spółce i klasyfikacji. |
|
|
110
|
+
| `list_webhook_events` | Zdarzenia z webhooka - do sprawdzenia, czy TradingView dochodzi do Agenta Rynku. |
|
|
111
|
+
| `get_asset_signals` | Szanse i ryzyka wykryte automatycznie dla spółki, każde z podpiętym dowodem w danych. |
|
|
112
|
+
| `get_signal_prediction_performance` | Celność liczbowych przewidywań ruchu ceny: trafienia, kierunek, średni błąd. |
|
|
113
|
+
| `submit_alert_feedback` | Ocena alertu - ten sam sygnał, co kciuki w Telegramie. |
|
|
114
|
+
| `get_alert_delivery_stats` | Statystyki dostarczania alertów: ile poszło, ile się nie udało. |
|
|
115
|
+
| `get_my_alert_performance` | Skuteczność alertów, które dostałeś: ile się sprawdziło. |
|
|
116
|
+
| `track_priced_event` | Zapisanie zdarzenia, którego wpływ na cenę chcesz rozliczyć później. |
|
|
117
|
+
| `get_priced_events` | Lista śledzonych zdarzeń wycenionych. |
|
|
118
|
+
| `historical_event_hit_rate` | Jak podobne zdarzenia wpływały na cenę w przeszłości. |
|
|
119
|
+
| `cancel_priced_event` | Odwołanie śledzonego zdarzenia. |
|
|
120
|
+
| `update_priced_event` | Zmiana szczegółów śledzonego zdarzenia. |
|
|
121
|
+
| `create_decision_rule` | Utworzenie reguły decyzyjnej, która ma pilnować warunku za Ciebie. |
|
|
122
|
+
| `list_decision_rules` | Lista Twoich reguł decyzyjnych. |
|
|
123
|
+
| `update_decision_rule` | Zmiana reguły decyzyjnej. |
|
|
124
|
+
| `delete_decision_rule` | Usunięcie reguły decyzyjnej. |
|
|
125
|
+
| `list_decision_rule_proposals` | Propozycje reguł decyzyjnych wynikające z Twojego zachowania. |
|
|
126
|
+
| `get_activity_feed` | Ostatnie zdarzenia na Twoim koncie. |
|
|
127
|
+
| `resolve_priced_event_now` | Natychmiastowe rozliczenie zdarzenia po bieżącej cenie. |
|
|
128
|
+
|
|
129
|
+
## Market risk / Ryzyko rynkowe
|
|
130
|
+
|
|
131
|
+
Reżim rynkowy, tematy ryzyka i zdarzenia mogące uderzyć w portfel.
|
|
132
|
+
|
|
133
|
+
| Tool | Opis (PL) |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `get_risk_regime` | Reżim ryzyka na rynku: spokojny, podwyższony czy kryzysowy. |
|
|
136
|
+
| `get_risk_themes` | Motywy ryzyka aktywne w tej chwili. |
|
|
137
|
+
| `get_risk_dashboard` | Zbiorczy obraz ryzyka rynkowego: reżim i aktywne motywy razem. |
|
|
138
|
+
| `get_event_risks` | Kalendarz zdarzeń makro, które mogą poruszyć rynkiem. |
|
|
139
|
+
|
|
140
|
+
## Catalyst bonds / Obligacje Catalyst
|
|
141
|
+
|
|
142
|
+
Serie obligacji, arkusz zleceń i kalkulator wcześniejszego wykupu.
|
|
143
|
+
|
|
144
|
+
| Tool | Opis (PL) |
|
|
145
|
+
|---|---|
|
|
146
|
+
| `get_bond_series` | Wyszukiwanie serii obligacji z Catalyst po emitencie, marży i terminie wykupu. |
|
|
147
|
+
| `calculate_early_redemption` | Rachunek opłacalności wcześniejszego wykupu obligacji. |
|
|
148
|
+
| `get_bond_orderbook` | Arkusz zleceń dla obligacji - na razie niedostępny, zwraca informację o odroczeniu. |
|
|
149
|
+
|
|
150
|
+
## Account, brief and diagnostics / Konto, odprawa i diagnostyka
|
|
151
|
+
|
|
152
|
+
Dzienna odprawa rynkowa, rozmowa z asystentem, ustawienia agenta oraz stan potoku danych.
|
|
153
|
+
|
|
154
|
+
| Tool | Opis (PL) |
|
|
155
|
+
|---|---|
|
|
156
|
+
| `get_daily_brief` | Odprawa na dziś: co się zmieniło w Twoim portfelu i na watchliście. |
|
|
157
|
+
| `query_companion` | Zapytanie do asystenta Agenta Rynku w języku naturalnym. |
|
|
158
|
+
| `submit_feature_request` | Zgłoszenie błędu, pomysłu albo brakujących danych do zespołu Agenta Rynku. |
|
|
159
|
+
| `claim_feature_request` | Wzięcie zgłoszenia do pracy albo oddanie go do kolejki. |
|
|
160
|
+
| `modify_chat_settings` | Ustawienia powiadomień: próg istotności, kanały, wyciszone klasy alertów. |
|
|
161
|
+
| `get_pipeline_health` | Stan potoków danych: świeżość źródeł, opóźnienia, awarie. |
|
|
162
|
+
| `set_agent_prefs` | Ustawienia zachowania agenta. |
|
|
163
|
+
| `modify_profile` | Zmiana profilu inwestora. |
|
|
164
|
+
| `list_feature_requests` | Lista zgłoszeń i ich stan. |
|
|
165
|
+
| `get_codex_pipeline_stats` | Statystyki potoku ekstrakcji danych ze sprawozdań. |
|
|
166
|
+
| `get_outcome_settlement_health` | Stan rozliczania wyników alertów i prognoz. |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Local stdio bridge to the hosted Agent Rynku MCP server.
|
|
3
|
+
// For clients that can only launch a local command. Clients that support
|
|
4
|
+
// remote HTTP servers can connect to https://agentrynku.pl/api/mcp directly,
|
|
5
|
+
// without this package.
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const { spawn } = require("node:child_process");
|
|
9
|
+
|
|
10
|
+
const URL = process.env.AGENTRYNKU_MCP_URL || "https://agentrynku.pl/api/mcp";
|
|
11
|
+
const key = (process.env.AGENTRYNKU_API_KEY || "").trim();
|
|
12
|
+
const DOCS = "https://github.com/krystiangw/agentrynku-mcp";
|
|
13
|
+
|
|
14
|
+
function fail(message) {
|
|
15
|
+
process.stderr.write(`agentrynku-mcp: ${message}\nDocs: ${DOCS}\n`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (!key) {
|
|
20
|
+
fail("set AGENTRYNKU_API_KEY. Create a key after signing in: https://agentrynku.pl/settings");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// initialize and tools/list answer without a valid key, so a wrong key would
|
|
24
|
+
// only show up at the first tool call, where a 401 sends mcp-remote into an
|
|
25
|
+
// OAuth flow this server does not offer. Check the key once, up front.
|
|
26
|
+
async function checkKey() {
|
|
27
|
+
try {
|
|
28
|
+
const res = await fetch(URL, {
|
|
29
|
+
method: "POST",
|
|
30
|
+
headers: {
|
|
31
|
+
"Content-Type": "application/json",
|
|
32
|
+
Accept: "application/json, text/event-stream",
|
|
33
|
+
Authorization: `Bearer ${key}`,
|
|
34
|
+
},
|
|
35
|
+
body: JSON.stringify({
|
|
36
|
+
jsonrpc: "2.0",
|
|
37
|
+
id: 1,
|
|
38
|
+
method: "tools/call",
|
|
39
|
+
params: { name: "get_spot_price", arguments: { symbol: "WIG20" } },
|
|
40
|
+
}),
|
|
41
|
+
signal: AbortSignal.timeout(10000),
|
|
42
|
+
});
|
|
43
|
+
if (res.status === 401) {
|
|
44
|
+
fail("the API key was rejected (invalid or revoked). Generate a new one at https://agentrynku.pl/settings");
|
|
45
|
+
}
|
|
46
|
+
} catch {
|
|
47
|
+
// Network trouble: let mcp-remote retry and report it in its own way.
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async function main() {
|
|
52
|
+
await checkKey();
|
|
53
|
+
const proxy = require.resolve("mcp-remote/dist/proxy.js");
|
|
54
|
+
// The key stays out of the process arguments: mcp-remote expands
|
|
55
|
+
// ${AGENTRYNKU_API_KEY} from the environment the child inherits.
|
|
56
|
+
const child = spawn(
|
|
57
|
+
process.execPath,
|
|
58
|
+
[proxy, URL, "--transport", "http-only", "--header", "Authorization:Bearer ${AGENTRYNKU_API_KEY}"],
|
|
59
|
+
{ stdio: "inherit", env: { ...process.env, AGENTRYNKU_API_KEY: key } },
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
for (const sig of ["SIGINT", "SIGTERM"]) process.on(sig, () => child.kill(sig));
|
|
63
|
+
child.on("exit", (code, signal) => {
|
|
64
|
+
if (signal) {
|
|
65
|
+
process.removeAllListeners(signal);
|
|
66
|
+
process.kill(process.pid, signal);
|
|
67
|
+
} else {
|
|
68
|
+
process.exit(code ?? 0);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
main();
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agentrynku-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for the Warsaw Stock Exchange (GPW): quotes, ESPI/EBI filings with assessments, quarterly KPIs, forecasts and portfolio tools. Stdio bridge to the hosted Agent Rynku server.",
|
|
5
|
+
"mcpName": "pl.agentrynku/gpw",
|
|
6
|
+
"bin": {
|
|
7
|
+
"agentrynku-mcp": "bin/agentrynku-mcp.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin",
|
|
11
|
+
"README.md",
|
|
12
|
+
"TOOLS.md",
|
|
13
|
+
"examples",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=20.18.1"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"mcp-remote": "0.14.3"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"mcp",
|
|
24
|
+
"model-context-protocol",
|
|
25
|
+
"gpw",
|
|
26
|
+
"warsaw-stock-exchange",
|
|
27
|
+
"espi",
|
|
28
|
+
"stocks",
|
|
29
|
+
"poland",
|
|
30
|
+
"gielda",
|
|
31
|
+
"claude",
|
|
32
|
+
"cursor"
|
|
33
|
+
],
|
|
34
|
+
"homepage": "https://agentrynku.pl/mcp",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/krystiangw/agentrynku-mcp.git"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/krystiangw/agentrynku-mcp/issues"
|
|
41
|
+
},
|
|
42
|
+
"author": "Agent Rynku (https://agentrynku.pl)",
|
|
43
|
+
"license": "MIT"
|
|
44
|
+
}
|